2013-11-23 116 views
0

我正在尝试使用SFML制作游戏。我在Visual Studio 2012和Windows 7上完成了一部分工作。我尝试在使用Windows XP的另一台PC上运行游戏,但遇到了错误“找不到MSVCP110D.dll”。我在这个论坛上看到另一个话题,说在编译模式下编译代码,但是当我在编译之前选择“Release”选项时,Visual Studio强调了所有与SFML相关的东西。它找不到包含“SFML/Graphics.hpp”的库。在“调试”模式下,一切正常。你有什么想法我可以在不同的PC(Windows XP或Windows 7)上运行我的游戏吗?MSVCP110D.dll未找到

我改变了Windows XP编译项目的属性。当我尝试在XP上运行游戏时没有这个选项,发生错误“不是有效的32位应用程序”。

一切正在工作。我改变了释放模式的所有设置。在我的Win XP PC上,我安装了C++ Redistribution 2012.但是如果我将游戏发送给没有C++ Redistribution 2012的人,该怎么办?

+0

如果您的项目编译器处于调试模式但不处于发布模式,那么这是因为您的项目设置对于发布模式不正确。无论您对调试模式的项目设置所做的任何更改,您都必须对发布模式进行等同更改。例如,如果在发布模式下,它不能找到“SFML/Graphics.hpp”,这是因为'additional include directories'的发布模式设置不正确。 – john

+0

要在另一台计算机上运行VC++应用程序,您必须添加相应的Redistributable软件包(请参阅http://msdn.microsoft.com/zh-cn/library/dd293575(v=vs.110).aspx)/并阅读本“重新分配Visual C++文件“ - http://msdn.microsoft.com/en-us/library/ms235299(v=vs.110).aspx – SChepurin

+0

我更改了发布模式的所有选项。我在想,我只需要将选项表单“调试”更改为“发布”。但是现在当我尝试在XP上运行它时,它会显示“MSVCP110.dll未找到” - 最终没有“D”。它处于发布模式。可能是什么问题? – user2972343

回答

1

正如评论中的讨论所显示的那样,您应始终构建在发布模式中进行部署。此外,当您动态链接运行时时,您需要为应用程序提供DLL(从可执行文件旁边的Visual Studio目录复制它们),或者发送/链接匹配的重新分发。

另一个选择是像Schepurin指出的那样静态链接,但请记住,如果做得不正确且一致,这会导致其他问题。