1. VB中汉字字符串转成16进制编码
“他是一个16进制数”
这个可能有点问题
参数的类型应该没有分什么进制的,16进制只是查看程序显示比较方便罢了
直接把Ansi压入就可以了
也就是直接压入Strconv("我是中国人",vbFromUnicode)
如果说程序发送的真的是十六进制字符串的话
那么~最节约的方法:
dim a() as byte
dim b as string
b="&H"
a=Strconv("我是中国人",vbFromUnicode)
for i = lbound(a) to ubound(a)
b=b & hex(a(i))
next
print b
=====================================================
我是中国人, 转一下变成了, &H12494BC4
这个表述应该也有问题
每个汉字有两个字节组成 表示为 &HXXXX
也就是说“我是中国人”这五个字表示为16进制应该有&HXXXXXXXXXXXXXXXXXXXX
这么长
如果是不遵守Unicode的话,倒是有可能用lz所用的长度表示
=====================================================
地址的话要压入 ByVal StrPtr(b)
b是定义的字符串型变量,一定要是ByVal哦
=====================================================
把汉字字符串“新年好啊”转换下存入内存&H00054AE2
这个~首先要确保这个地址分配了足够长的空间
然后用Copymemory
把字符串数据Copy过去
b="新年好啊"
CopyMemory Byval &H00054AE2,Byval ByVal StrPtr(b),lenb(b)
=====================================================
如果是对其他程序的内存作修改的话要先取得访问内存的权限
网络上有游戏修改器的源代码,应该可以参考
动态分配内存空间可以用GlobalAlloc这个API
-----------------------------------------------------
VB的话~弄不好的话IDE可能会崩溃的
所以……最好在每次运行前都保存
2. 求vb中将字符串转换为16进制的ascii码代码
楼上的不是VB代码,不要乱贴啊
使用VB内部函数
Hex$(x) 是把10进制的数字变成16进制
如y=Hex$(10)就是求10的十六进制数 那么 y=A
字母,数字,和汉字的asc码都只要用asc()这个函数就可以求出来了
你把问题写写清楚的话,我可以写下代码
Option Explicit
Dim aa$, bb$, hexstr$, I&, S
Private Sub Command1_Click()
Dim lendd As Integer, n As Integer
lendd = Len(Text2.Text)
Text3.Text = ""
n = 0
For I = lendd To 1 Step -1
n = n + 1
Text3.Text = Text3.Text + Mid(Text2.Text, I, 1)
If n = 4 Then Text3.Text = Text3.Text & "-": n = 0
Next I
End Sub
Private Sub command2_Click()
aa = ""
If Text1.Text = "" Then Exit Sub
For I = 1 To Len(Text1.Text)
aa = aa & CStr(ZFto16(Mid(Text1.Text, I, 1)))
Next I
Text2.Text = Trim(aa)
Text1.Text = ""
End Sub
Public Function ZFto16(hz$) As String
If hz = "" Then Exit Function
ZFto16 = Hex(Asc(hz))
End Function
Public Function ZF16toZF(hexstr$) As String
If hz = "" Then Exit Function
ZF16toZF = Chr("&H" & hexstr)
End Function