我在c#vs2005 .net。
中构建了一个应用程序当我以32位的胜利运行应用程序时,一切正常,但是 当在win 64中运行应用程序时,它在尝试呼叫时崩溃 pinvoke interlockedexchange(在kernel32.dll中)函数。
这是例外: 无法找到名为'interlockedexchange'的入口点
我没有在system32目录下的kernel32.dll中找到interlockedexchange函数,但它在syswow64目录下找到(在kernel32.dll中)。
我想.net运行时配置为system32目录而不是syswow64。 如何更改此配置?您能想到可能导致此问题的任何其他问题吗? 任何帮助,将不胜感激! 谢谢,
Miki Amit
答案 0 :(得分:0)
这不会直接回答您的问题,但为什么不拨打System.Threading.Interlocked.Exhange()
而不是诉诸P / Invoke?
答案 1 :(得分:0)
如果您设置使用InterlockedExchange并且想要32位版本,则可以更改项目设置以强制它以32位运行。转到项目设置中的“构建”选项卡,将“平台目标”更改为x86。然后它将以32位运行。