C#同时支持x64和x86

时间:2019-03-22 09:52:53

标签: c# winapi architecture 64-bit pinvoke

我正在一个C#项目中,我必须同时支持x64和x86体系结构。 我必须定义一些Write32Memory之类的kernel32函数。

对于WriteProcessMemory,根据我编译的体系结构,“ SIZE_T nSize”是uint32还是uint64。我考虑过使用IntPtr,因为它也依赖于体系结构,但是之后我仍然必须检查大小,以了解是否应该转换为uint32或uint64。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

此问题的最佳解决方案是对所有地址,指针和偏移量使用IntPtr(),然后构建单独的x86和x64可执行文件。然后将相应的可执行文件用于您要定位的进程。

几乎所有流行的内存工具都使用此技术,因为它代表的麻烦最少。