我正在使用VS 2012的默认构建设置构建32位可执行文件。它可以在一台64位计算机(开发机器)上正常工作;在另一台64位计算机上,程序崩溃,错误为0xc000007b。
一些研究和使用依赖性walker表明问题是可执行文件正在加载64位dll而不是32位dll。
我有理由相信,通过将构建配置为静态链接所需代码而不是调用DLL,可以解决这个问题。
1)。这个解决方案是一个合理正确和便携的解决方案吗?
2)。如何配置VS 2012以静态链接?
N.b:这是一个C ++原生程序。
答案 0 :(得分:0)
虽然这本身不是上面“合理正确和便携”问题#1的答案,但我从How do I make a fully statically linked .exe with Visual Studio Express 2005?找到了#2的答案。如果编译器/ MD选项更改为/ MT,它会从DLL中的链接切换到静态链接它,问题就会消失[1]。
[1]。仅仅因为问题消失并不意味着它已经解决了。