读/写ProcessMemory声明

时间:2011-12-31 14:39:40

标签: c# windows

我正在尝试制作内存扫描程序,因为我需要调用read和write proccessmemory, 我在谷歌搜索并找出声明是:

 [DllImport("Kernel32.dll")] 
 public static extern bool ReadProcessMemory(ntPtr hProcess, 
                         IntPtr lpBaseAddress, byte[] lpBuffer, 
                         UInt32 nSize, ref UInt32 lpNumberOfBytesRead);

我试图将它放在main函数中。

但我总是遇到编译器错误。

我应该把它放在哪里才能获得ReadProcesssMemory

在那个家伙帮助我之后(我下面的帖子)我得到了这个错误:

错误1找不到类型或命名空间名称'DllImportAttribute'(您是否缺少using指令或程序集引用?)

1 个答案:

答案 0 :(得分:4)

您的声明中有错误。没有ntPtr这类型(函数的第一个参数)。您可能希望使用IntPtr类型:

using System;
using System.Runtime.InteropServices;

class Program
{
    [DllImport("kernel32.dll")]
    public static extern bool ReadProcessMemory(
        IntPtr hProcess,
        IntPtr lpBaseAddress,
        byte[] lpBuffer,
        UInt32 nSize,
        ref UInt32 lpNumberOfBytesRead
    );

    public static void Main()
    {

    }
}