2013-05-15 54 views
2

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

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

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

1)。这个解决方案是一个合理正确和便携的解决方案吗2)。如何配置VS 2012以静态链接如上?

N.b:这是一个C++原生程序。

+0

64位DLL不会从天而降。您需要明确它来自哪里以及为什么该计算机没有该DLL的32位版本。 –

+1

只要一切(当然除了操作系统本身)都是静态链接的,那确实是一个正确和便携的解决方案。但是,如果您需要链接到第三方DLL,而这些DLL本身依赖于动态链接运行时库,则此方法将无法工作。在这种情况下,您需要在目标机器上安装正确版本的运行时库。 –

+0

@HarryJohnston:在我的具体情况下实际上不是问题。但是,对于下一个有这个问题的人来说,这很好。 –

回答

相关问题