在我从 XP 迁移到 Vista 之后,我意识到我的 C# 程序无法运行。
情况是这样的:我写了一个 C++ dll,在我的 C# 应用程序中使用。DLL 在 XP 中运行良好,但是当我转移到 Vista 时,它不再在 C# 中运行。
我在 Delphi 中测试过它,工作正常,但 C# - 不行。
我在 C# 中编写了额外的代码来简化我的检查。
if (LoadLibrary("blowfish.dll") == 0)
{
Misc.LogToFile("error", true);
Application.Exit();
}
它不需要 C++ 运行时,因为它是用库编译的,并且可以在 Vista 上的 Delphi 中运行,但不能在 C# 中运行。
问题出在哪里?
提前致谢。
最佳答案
在 x64 平台上,JIT 会将您的程序编译为 x64,因为您的 native C++ 被编译为 x86,因此无法加载它。
您需要明确告诉 JIT 将您的程序编译为 x86,您可以使用 CorFlags 来完成或者项目设置将 CPU 类型设置为 x86(在构建/平台目标下)
关于c# - LoadLibrary 在 Vista x64 下失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1116388/