首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

郁闷死了,这么简单的函数如何执行就不成功呢

2012-03-05 
郁闷死了,这么简单的函数怎么执行就不成功呢?PublicFunctionstrtohex(ByValbufferAsByte())AsStringDimiAs

郁闷死了,这么简单的函数怎么执行就不成功呢?
Public   Function   strtohex(ByVal   buffer   As   Byte())   As   String
                Dim   i   As   Integer
                Dim   count   As   Integer
                count   =   buffer.Length

                Dim   str   As   String   =   " "
                For   i   =   0   To   count
                        str   =   str   &   Hex(buffer(i))
                Next
                'for   循环执行完毕,总是不执行下面端话。最后返回的竟然是空。
                '单步执行的时候,明明看到str这个变量不是空的。

                MessageBox.Show(str)

                Return   str   '就是执行不到这里。郁闷呀。
        End   Function

[解决办法]
你函数的第一句就错了,应该为
Public Function strtohex(buffer() As Byte) As String
因为形参如果是动态数组的话,是不能使用传值传递方式而只能采用引用传递方式(不能包含ByVal关键字).
第四条语句count = buffer.Length是得不到动态数组的长度的,buffer是一个数据结构,而非对象,不存在Length方法.
倒数第二条语句 Return str 也是错误的,应将其改为strtohex=str
看来你还是初学者啊
[解决办法]
count = buffer.Length
应该是用buffer.GetUpbound(0) 或者用VB的ubound(buffer)

热点排行