c# - 在 .Net 中使用 kernel32

标签 c# c++ interop

SO 社区的问题。我有一个带有完整源代码的 C++ 库,我可以在 32 位和 64 位模式下编译它。但是,要从 .NET 调用代码,我必须选择 32 位或 64 位,因此强制我的应用程序为 32 位或 64 位。我决定我可能不得不忍受这个问题……但我偶然发现了一些给了我希望的东西。我注意到我可以在外部函数中引用“kernel32.dll”,并且该程序在 32 位和 64 位中都运行良好。有谁知道这是怎么做到的?

谢谢!

最佳答案

这是 Windows on Windows 64 (WOW64) 的一项功能:File System Redirector

您不能真正将它用于您自己的库,因为它仅适用于 System32 文件夹。 (不要甚至考虑将您的 DLL 放入 System32。)

使用 SetDllDirectory可能有帮助,但我不确定。

关于c# - 在 .Net 中使用 kernel32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320894/

相关文章:

c# - WCF 服务客户端 : Customized soap envelope not being sent on the wire

c# - C++ 到 C#,C# 到带有外部 DLL 的 C++,DLL 未找到异常

不使用范围运算符就无法访问 C++ 命名空间变量

c# - 为什么我的模拟鼠标点击没有执行任何操作?

c# - 客户端请求中的 SAML token 后需要签名

c# - 在 Word 2010 中禁用另存为按钮

c# - 捕获另一个表单抛出的异常

c# - 对象 A 引用了对象 B,而对象 B 将对象 A 作为公共(public)属性 - 设计不好?

c++ - 在Linux上的C++中使用线程应该添加哪个头文件

c++ - CMake configure 无法在 Linux 上找到 Qt5