【发布时间】:2020-09-24 20:39:08
【问题描述】:
我有一个用 C# 编写的 32 位用户模式应用程序,我需要模拟 64 位指针的行为。我知道我可以编译为 64 位,但我使用的是 directx9 dll,一旦我更改目标架构,它就会变得不兼容。
我的问题是 IntPtr 类类型太小,只有 4 个字节,在与 64 位内核模式驱动程序通信时会导致问题。我需要一个 64 位指针来匹配驱动程序上的结构。
我的问题是是否有任何方法可以在 c# 应用程序上创建 64 位指针?是否有任何包装类可以为我做到这一点?
ideally:
IntPtr32 pnt32; //would 4 bytes large
IntPtr64 pnt64; //and this would be 8 bytes large
【问题讨论】:
-
使用
long强制64位。 -
你想用这个指针做什么?您不能使用 64 位地址从 32 位应用程序访问内存。
标签: c# windows pointers x86-64