2011-03-16 75 views
3

SO社区的问题。我有一个具有完整源代码的C++库,我可以在32位和64位模式下编译它。但是,要从.NET调用代码,我必须选择32位或64位,因此强制我的应用程序为32位或64位。我决定我可能不得不忍受这个问题......但是我偶然发现了一些让我希望的东西。我注意到我可以在extern函数中引用“kernel32.dll”,程序在32位和64位都可以正常运行。有谁知道这是如何完成的?在.Net中使用kernel32

谢谢!

回答

3

它的Windows在Windows 64(WOW64)一个特点是:File System Redirector

你真的不能使用它自己的库,因为它是唯一的System32文件夹中。 (做甚至认为这会让你的DLL文件在System32中)。

使用SetDllDirectory可能有帮助,但我不知道。

+0

很完美! SetDllDirectory只能在运行时将其设置为x86或x64。我只是试了一下,它就像一个魅力。非常感谢! – Terry 2011-03-16 04:09:05

+0

@Terry:太棒了!很高兴帮助! – Mehrdad 2011-03-16 04:23:11