【发布时间】:2014-09-05 10:56:16
【问题描述】:
一年多前,我在 Windows 7 32 位下使用 C# 创建了一个库,它工作正常,这个库使用“User32.dll”和“Gdi32.dll”库。
起初我为 AnyCPU 编译了这个库,它在 32 位上工作,但在 win 64 位上不工作,我也为 64 位 CPU 编译过,但同样的情况又发生了。
我的库使用“User32.dll”中的“RawInput devices”和“gdi32.dll”中的“GetDeviceCaps”。
【问题讨论】:
-
库项目的平台目标设置非常不相关。决定进程位数的是EXE项目。没有使用正确的错误检查和使用需要 IntPtr 的 int 摸索 pinvoke 声明是标准错误。在 32 位进程中工作,在 64 位中失败。没有人可以看到您的,也无法猜测“不起作用”的含义。
-
解决你问题的方法在于只有你能看到的代码。
标签: c# windows winapi dll 32bit-64bit