vb如何取地址? dim str1 as stringdim rva as long 如何取出str1的地址赋值给:rva也就是取出string 类型的地址 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 变量地址=varptr(变量名)'ANY型 变量地址=strptr(变量名)'string 其余类推 Dim str1 ,str2 As StringDim byte1(0 To 100) As Bytestr1 = Chr(62) + Chr(62)CopyMemory ByVal VarPtr(byte1(0)), ByVal StrPtr(str1), LenB(str1)MsgBox byte1(1)为何byte1(1)等于0 ?如果: str1="代码"我想把str1的数据拷贝到byte1数组里,怎么办?之后又如何把byte1数组里的数据拷贝到str2里,使得:"代码"=str2 我现在没有VB。没有办法试,我记得好象传递用 byref 按地址传递的。 CopyMemory VarPtr(byte1()),StrPtr(str1), 4你用上面的语句试试。 VarPtr()取地址,根据声明形式的不同可以变化成StrPtr(),ObjPtr(),ArrayPtr()等等。最后一个要自己声明: Declare Function ArrayPtr()Lib "msvbvm60.dll" Alias "VarPtr" (Var() As Any) As Long CopyMemory VarPtr(byte1(1)),StrPtr(str1), 4 这样再试一次。如果不行,我想不出了。我现在没有办法试。 CopyMemory VarPtr(byte1(1)),StrPtr(str1), 4 这样再试一次。 在贴贴子之前我试了,不行! CopyMemory ByVal VarPtr(byte1(0)), ByVal StrPtr(str1), 4 就这样,你将最后改为4试一下看先。 我也早试了,不行!声明了ArrayPtr然后:CopyMemory ByVal ArrayPtr(byte1()), ByVal StrPtr(str1), 4还是不行! 楼上那样肯定不行了,ArrayPtr(byte1())获得的是SafeArray结构地址,不能随便乱改不然会引起VB的IDE崩溃。如果只是想要把String转换成byte数组的话,为何不试试StrConv()函数呢? StrConv(string, conversion, LCID) 常数 值 说明 vbUpperCase 1 将字符串文字转成大写。 vbLowerCase 2 将字符串文字转成小写。 vbProperCase 3 将字符串中每个字的开头字母转成大写。 vbWide* 4* 将字符串中单字节字符转成双字节字符。 vbNarrow* 8* 将字符串中双字节字符转成单字节字符。 vbKatakana** 16** 将字符串中平假名字符转成片假名字符。 vbHiragana** 32** 将字符串中片假名字符转成平假名字符。 vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。 vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。如何转换啊? 转换成字符数组:byte1()=StrConv(str1,vbFromUnicode)转换回字符串的话:str1=StrConv(byte1(),vbUnicode) http://topic.csdn.net/u/20080724/21/b193a4b2-eaab-4cb7-9a48-ba4e00f0b82c.html看一下上面那个贴子吧。看看大家的处理办法。其中zzyong00 阿勇的解决办法就是用到了,CopyMemory看对你有帮助没。 byte1()=StrConv(str1,vbFromUnicode) 不能给byte1()数组赋值 我的正确代码:Dim str1 As String * 10Dim byte1(0 To 100) As Bytestr1 = "文件"str1 = StrConv(str1, 128)CopyMemory ByVal 映射地址, ByVal VarPtr(byte1(0)), Len(str1) vb 实现按钮的上一个下一个的功能 vb6.0加载程序出错 如何将ListView里的记录传递到recordset里? 关于串口调试的工具 如何在vb中预览excel 编一个小程序真麻烦,但终于只剩下最后一个打包的问题 定时器的问题! VB调用DOS下的exe文件,如何虚拟其键盘输入? 怎样获取一个网页上的所有文本内容(含各个框架内的),所有超链接,所有图片的URL以进行整理。 急!!!提示 ActiveX 不能创建对象脚本?但是呢?....... winsock 为什么当我运行我的软件时,运行游戏会很卡?
变量地址=strptr(变量名)'string
其余类推
Dim byte1(0 To 100) As Byte
str1 = Chr(62) + Chr(62)
CopyMemory ByVal VarPtr(byte1(0)), ByVal StrPtr(str1), LenB(str1)
MsgBox byte1(1)为何byte1(1)等于0 ?如果:
str1="代码"我想把str1的数据拷贝到byte1数组里,怎么办?之后又如何把byte1数组里的数据拷贝到str2里,使得:"代码"=str2
Declare Function ArrayPtr()Lib "msvbvm60.dll" Alias "VarPtr" (Var() As Any) As Long
这样再试一次。
如果不行,我想不出了。我现在没有办法试。
这样再试一次。
在贴贴子之前我试了,不行!
声明了ArrayPtr
然后:CopyMemory ByVal ArrayPtr(byte1()), ByVal StrPtr(str1), 4
还是不行!
常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。
vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。
如何转换啊?
byte1()=StrConv(str1,vbFromUnicode)转换回字符串的话:
str1=StrConv(byte1(),vbUnicode)
其中zzyong00 阿勇的解决办法就是用到了,CopyMemory看对你有帮助没。
Dim str1 As String * 10
Dim byte1(0 To 100) As Byte
str1 = "文件"
str1 = StrConv(str1, 128)
CopyMemory ByVal 映射地址, ByVal VarPtr(byte1(0)), Len(str1)