无法找到名为'interlockedexchange'的入口点
我用c#vs2005.net构建了一个应用程序。
当我在win 32位运行应用程序时,一切正常,但是当在win 64中运行应用程序时,它会在尝试调用pinvoke interlockedexchange(kernel32.dll内)函数时崩溃。
这是例外:无法找到名为'interlockedexchange'的入口点
我没有在system32目录下的kernel32.dll中找到interlockedexchange函数,但它在syswow64目录下(在kernel32.dll中)找到。
我猜测.net运行时被配置为system32目录而不是syswow64。 怎样才能改变这个配置? 你能想到任何其他可能导致此问题的问题吗? 任何帮助,将不胜感激! 谢谢 ,
三木阿米特
如果设置为使用InterlockedExchange并希望使用32位版本,则可以更改项目设置以强制其以32位方式运行。 转到项目设置中的“Build”选项卡,并将“Platform target”更改为x86。 它将以32位运行。
这不直接回答你的问题,但为什么不调用System.Threading.Interlocked.Exhange()
而不是诉诸P / Invoke?
上一篇: unable to find an entry point named 'interlockedexchange'