C# 在Windows 10上迭代.NET 4.0的clr.dll库中的指针时发生System.AccessViolationException异常

C# 在Windows 10上迭代.NET 4.0的clr.dll库中的指针时发生System.AccessViolationException异常,c#,clr,extern,C#,Clr,Extern,此代码来自另一个在旧版本windows上工作的文件。编译时,我会在一些迭代之后得到System.AccessViolationException,而不是给我指针 [DllImport(“kernel32.dll”)] 私有静态外部IntPtr GetProcAddress(IntPtr lib,string proc); [DllImport(“kernel32.dll”)] 私有静态外部IntPtr加载库(字符串库); void Main(){ ptr=(字节*)GetProcAddress(

此代码来自另一个在旧版本windows上工作的文件。编译时,我会在一些迭代之后得到System.AccessViolationException,而不是给我指针

[DllImport(“kernel32.dll”)]
私有静态外部IntPtr GetProcAddress(IntPtr lib,string proc);
[DllImport(“kernel32.dll”)]
私有静态外部IntPtr加载库(字符串库);
void Main(){
ptr=(字节*)GetProcAddress(LoadLibrary(“clr.dll”),“_CorExeMain”).ToPointer();
而((((ptr[0]!=0xe8)| |((ptr-3)| |((ptr-2)| | |((ptr-2)0x45 | | |((((((ptr-1)))))0xfc))|
{
ptr++;
}
}
我错过了什么?
谢谢。

它告诉您指针是不安全的。当你使用pinvoke操作系统函数时,错误检查不是可选的。我需要r/w的virtualprotect属性吗?