windows - 构建正确链接的可执行文件以避免错误 0xc000007b

标签 windows visual-studio-2012 32bit-64bit

我正在使用 VS 2012 的默认build设置构建一个 32 位可执行文件。它在一台 64 位计算机(开发机)上正常工作;在另一台 64 位计算机上,程序崩溃并出现错误 0xc000007b。

一些研究和使用依赖项 walker 表明问题在于可执行文件正在加载 64 位 dll 而不是 32 位 dll。

我有理由相信,这可以通过将构建配置为静态链接所需代码而不是调用 DLL 来解决。

1).该解决方案是合理正确且可移植的解决方案吗?

2).如何配置 VS 2012 以静态链接如上?

注意:这是一个 C++ 本地程序。

最佳答案

虽然这本身并不是上面“合理正确且可移植”问题 #1 的答案,但我从 How do I make a fully statically linked .exe with Visual Studio Express 2005? 中找到了问题 #2 的答案。 .如果将编译器/MD 选项更改为/MT,它将从 DLL 中的链接切换为静态链接,问题就消失了[1]。

[1]。问题消失了并不意味着它就解决了。

关于windows - 构建正确链接的可执行文件以避免错误 0xc000007b,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16575433/

相关文章:

.net - 如何关闭所有发行版的pdb生成和vshost

winapi - 来自 Win32 应用程序的 x64 图像上的 OpenProcess

匹配下级登录名的正则表达式

android - 编译ffmpeg库时出错

visual-studio-2012 - 使用 Visual Studio 2012 重写 url

python - 通过 Pyodbc 连接到 Oracle ODBC(32 位与 64 位)

C++ 64 位整数 : pass by reference or pass by value

c++ - 将 unicode 代码点转换为 utf-16

c++ - opencv wasm 构建在 Windows 上失败

asp.net - 通过隧道将本地主机暴露到互联网(使用ngrok): HTTP error 400: bad request; invalid hostname