比如说我有一个BYTE数组,50字节长,我想把字符串"ab中国"赋值给这个数组,如何做?
"ab中国"实际占用的字节数应该是12个(VB中是Unicode,中文又要多占2个),我用API函数CopyMemory总报错
请指教,谢谢,最好有个例子
"ab中国"实际占用的字节数应该是12个(VB中是Unicode,中文又要多占2个),我用API函数CopyMemory总报错
请指教,谢谢,最好有个例子
解决方案 »
- 有关winsock的一个小问题?
- 怎么得到picturebox中位图的真实大小?不是imagebox
- 各位高手,求救 当我添加部件DBGrid32.ocx后
- 一个窗体上的按扭激活另一个窗体按扭的问题?
- 用VB的DATAGRID连接SQLSERVER 2000 在datagrid中修改记录会出现多步ole出错,怎么办???
- 有在大连的朋友么?写软件的.我有房子要合组...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 急求助:考试系统中的access与vba!!!!!!!!!!!!!!
- 我在listview中选择了多个listitem,但拖放的时候只能拖鼠标所指的那一个listitem,怎么个搞法?望高手赐教?
- 哪位老兄有键盘拦截的源代码?能给我发一份吗!E_MAIL:[email protected]
- 谁有VB开发SQL SERVER的源代码
- VB is the child of the Basic?
- 帮忙看看 Lucent软猫收数据时为何不响应 _OnComm 事件?
tmp = strconv (tmp , vbfromunicode)
ltmp = lenb (tmp) + 1
然后再用copymemory
tmp是什么类型?
不行啊,用 copymemory,只考过去3个字节,而且返回的长度也只是7(代码中的m)
代码如下,其中userm.szUserName是50字节的BYTE数组:
Dim strlen As String
strlen = StrConv(str, vbFromUnicode)
m = LenB(strlen) + 1
Call CopyMemory(userm.szUserName(0), str, m)
dim strlen as long
dim str as string
str = strconv(str , vbfromunicode)
strlen = lenb(str) +1
刚才没写全,其实和你的一样:
Dim str as String
Dim strlen As String
Dim m as long
str = "AB中国"
strlen = StrConv(str, vbFromUnicode)
m = LenB(strlen) + 1
Call CopyMemory(userm.szUserName(0), str, m)
CopyMemory之后只考过去3个字节
redim empbytes(50) as byte
open "c:\temp.tmp" for binary as #1
get 1,1,empbytes(50)
close #1
Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Public Sub Command1_Click()
Dim a As New MD5COMLib.SinforMD5
Dim i As Long
Dim j As Long
Dim m As Long
Dim bytHello() As Byte
Dim strlen As String
Dim userm(0 To 9) As userMD5com
Dim str As String
Dim MD5str As String
'³õʼ»¯
For j = 0 To 9
userm(j).byavalid = 0
userm(j).lUserID = 0
userm(j).byType = 0
For i = 0 To 7
userm(j).szpublickey(i) = 0
Next
For i = 0 To 49
userm(j).szUserName(i) = 0
Next
Next
str = "ABÖйú"
bytHello = StrConv(str, vbFromUnicode)
strlen = StrConv(str, vbFromUnicode)
m = LenB(strlen)
Call CopyMemory(userm(0).szUserName(0), bytHello(0), m)
Call a.UserMD5toStr(userm(0), 64 * 10, MD5str)
End Sub