VB为什么这样读不出内存呢?急!

[复制链接]
查看11 | 回复3 | 2010-8-30 13:44:31 | 显示全部楼层 |阅读模式
我把内存地址放在一个Text1里面,就读不内存地址了!
不放就可以,请问这是怎么回事呢?
我代码这样写读不出:
ReadProcessMemory pHandle, CLng("&H" & Text1), VarPtr(hol), 4, 0&
这样也不行:
ReadProcessMemory pHandle, "&H" & Text1, VarPtr(hol), 4, 0&
这样也不行:
ReadProcessMemory pHandle, Text1, VarPtr(hol), 4, 0&
应该到底怎么写啊,天啊,救救我啊,我的头两个大了!!!!!
回一楼:逗号是否中文逗号我是注意了的(以前也吃过这亏)这次不会的。你检查一下上面的代码就知道了是否有错?
回二楼:我加上Clng会显示“实时错误13,类型不匹配”啊···我删了Clng又读不出来····你们自己试这样试过了吗?

回复

使用道具 举报

千问 | 2010-8-30 13:44:31 | 显示全部楼层
你的代码好像有个简单的错误ReadProcessMemory pHandle, CLng("&H" & Text1), VarPtr(hol), 4, 0&里面的Text1是不是应该是Text1.Text第一句如果改为ReadProcessMemory pHandle, CLng("&H" & Text1.Text), VarPtr(hol), 4, 0&完全可以读出来,如果你还是读不出来就该检查一下pHandle有没有问题了!是不是你的Text1.Text中有不属于16进制的字符,比如G如果有就会出现你说的错误,如果没法避免会有这样的字符,你可以先通过ASC码来判断去掉这些字符
回复

使用道具 举报

千问 | 2010-8-30 13:44:31 | 显示全部楼层
是因为你没加Byval吧。比如你要读的内存地址为 &H450000Dim hAdd as longhAdd=&H450000Text1.text=hAdd这样你的Text1.text会是个十进制的数4521984
ReadProcessMemory pHandle, Byval CLng(Trim(Text1.tex
回复

使用道具 举报

千问 | 2010-8-30 13:44:31 | 显示全部楼层
朋友,你的逗号,不会是中文的吧。VB里,所有的代码都必须是英文的,除了显示的文字可以用中午的。你的逗号如果有一个是中文状态下输入的就不行哦,用vb的查找替换换掉所有的中文都好,改成英文都好试试看。还有就是代码间的空格,有的代码没空格它也是不认识的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行