我正在尝试制作内存扫描程序,因为我需要调用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指令或程序集引用?)
答案 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()
{
}
}