2010-01-23 87 views
0

我正在VS2008环境之上开发一个C++模拟(OpenGL)。我目前的操作系统是Windows Vista。麻烦的是,当试图在Windows XP机器上执行应用程序时,我的应用程序崩溃,因为DLL之间存在不兼容(即msvcrt.dll函数入口点)......有没有人遇到过这样的问题?Visual Studio 2008 C++依赖关系

+2

你是否将VC2008运行时文件安装在目标机器上? http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en – Joe 2010-01-23 01:18:34

+2

它实际上是崩溃还是你得到一个错误消息说某些DLL无法加载? – 2010-01-23 01:18:43

+0

是的,我已经安装了运行时文件,重新启动机器和DLL问题继续... – Lucas 2010-01-23 01:27:47

回答

1

我严重怀疑这是它崩溃的真正原因。您可能只是没有将CRT库部署到目标机器。或者部署调试版本。如果这是一个没有DLL依赖的单个EXE,那么通过链接CRT的静态版本来解决您的问题。右键单击解决方案资源管理器,属性,C/C++,代码生成,运行时库中的项目,选择/ MTd。重复发布配置,现在选择/ MT。

+0

版本我试图执行的可执行文件是使用发布目标进行编译的! – Lucas 2010-01-23 01:33:51

0
  1. 打开Visual Studio命令提示符。
  2. 输入“depends.exe”,然后按回车。
  3. 从depends打开可部署的EXE/DLL。
  4. 记下运行应用程序所需的DLL列表。
  5. 验证这些DLL是与您的目标操作系统版本一起部署,还是您自己部署它们。
+0

微软在Visual Studio 2008中没有包含Dependency Walker(尽管它包含在以前的版本中)。它可以从http://dependencywalker.com/ – 2010-01-23 01:33:33

1

在MSDN上搜索'C redistributables'。 YOu会看到你需要的所有运行时库的列表,确保你得到了调试/非调试和unicode/ansi选择正确

+0

下载是的,我已经安装了运行时文件,重新启动计算机和DLL的问题继续 – Lucas 2010-01-23 01:33:00

+0

如果没有找到入口点,那么正确的运行时文件安装不正确。 – 2010-01-23 01:43:54

相关问题