2013-11-23 44 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指出的那樣靜態鏈接,但請記住,如果做得不正確且一致,這會導致其他問題。