2

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

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

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

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

2)。如何将 VS 2012 配置为如上所述静态链接?

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

4

1 回答 1

0

虽然这本身不是对上述“相当正确和可移植”问题 #1 的答案,但我从如何使用 Visual Studio Express 2005 制作完全静态链接的 .exe?. 如果编译器 /MD 选项更改为 /MT,它会从链接 DLL 切换到静态链接,问题就会消失 [1]。

[1]。仅仅因为问题消失并不意味着它已经解决。

于 2013-05-15T21:57:39.630 回答