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

哪位高手能把这个VB6的程序变成VB.NET

2012-02-16 
谁能把这个VB6的程序变成VB.NET?-----------------VB6.0------------------------PublicDeclareFunctionRe

谁能把这个VB6的程序变成VB.NET?
-----------------VB6.0------------------------
Public   Declare   Function   ReadProcessMemory   Lib   "kernel32.dll "   (ByVal   hProcess   As   Long,   ByVal   lpBaseAddress   As   Long,   ByRef   lpBuffer   As   Any,   ByVal   nSize   As   Long,   ByRef   lpNumberOfBytesWritten   As   Long)   As   Long

    Dim   h   As   Long
        ReadProcessMemory   hProcess,   ByVal   &HAEBD90,   h,   4,   0&         '人血
        ReadProcessMemory   hProcess,   ByVal   h   +   &H20,   h,   4,   0&
        ReadProcessMemory   hProcess,   ByVal   h   +   &H250,   h,   4,   0&
    Label1.Caption   =   h


=================VB.NET========================
Public   Declare   Function   ReadProcessMemory   Lib   "kernel32 "   (ByVal   hProcess   As   Integer,   ByVal   lpBaseAddress   As   IntPtr,   ByVal   lpBuffer   As   IntPtr,   ByVal   nSize   As   Integer,   ByRef   lpNumberOfBytesWritten   As   Integer)   As   Integer

    Dim   h   As   Long
          ReadProcessMemory(hProcess,   &HAEBD90,   h,   4,   0)   '人血
          ReadProcessMemory(hProcess,   h   +   20,   h,   4,   0)
          ReadProcessMemory(hProcess,   h   +   250,   h,   4,   0)
    Label1.Text   =   h


VB6.0的程序可以运行,而且得到的数据也是正确的,但是VB.NET的那个程序可以运行但是得到的数据却是“空白”,请大家帮忙修改一下啊
只剩这60分了。。。大家将就一下。。。
在线等,随时测试

[解决办法]
ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As IntPtr
怎么是IntPtr?!
[解决办法]
Public Declare Function ReadProcessMemory Lib "kernel32 " Alias "ReadProcessMemory " (ByVal hProcess As Integer,ByVal lpBaseAddress As Object,ByRef lpBuffer As Object, ByVal nSize As Integer, lpNumberOfBytesWritten As Integer) As Integer

看原声明,lpBaseAddressObject好象也应该用ByRef,问题不大
Object用string应该也可以!
[解决办法]
unsingle long h//把h定义为无符号长整型就可以了。

热点排行