我正在编写一个 WPF 应用程序,它使用 PINVOKE 来调用我也在编写的 dll。在 dll 中的一个导出函数中,调用了 SetupDiGetClassDevs。此时,在XP上运行该应用程序时,我得到一个错误,首先是一个对话框说:
“无法在动态链接库 KERNAL32.dll 中找到程序入口点 RegOpenKeyExW。”
单击确定然后将我带到一个未处理的异常对话框。WPP应用程序和dll都是在Win7机器上用VS2010构建的,应用程序在Win7系统上运行良好。只有在 XP 上运行应用程序时才会出现此问题。如果我避免在 dll 中使用 SetupDiGetClassDevs(以及随后的 SetUpdi 函数调用),则不会出错;所以看起来 PINVOKE 机制工作正常。
任何想法出了什么问题?我对看到引用 RegOpenKeyExW 感到有些困惑,因为 dll 不是在启用 UNICODE 的情况下构建的。
谢谢汤姆