我想執行一個exe文件,它是用VC++。net 2008編寫的,在一臺擁有windows xp並且沒有.net框架但沒有C++庫的計算機上。 但是當我運行該文件,我得到這個錯誤:注入dll到exe文件
This application has failed to start because the application configuration is incorrect....
我想辦法把所有的依賴一起成爲自由這個問題。 有誰知道我該怎麼辦?
我想執行一個exe文件,它是用VC++。net 2008編寫的,在一臺擁有windows xp並且沒有.net框架但沒有C++庫的計算機上。 但是當我運行該文件,我得到這個錯誤:注入dll到exe文件
This application has failed to start because the application configuration is incorrect....
我想辦法把所有的依賴一起成爲自由這個問題。 有誰知道我該怎麼辦?
如果你正在寫一個純粹的C++應用程序(僅Win32,.NET沒有),那麼你要staticly鏈接C++運行時,可以在項目屬性進行更改。有關說明,請參閱this answer。 (這是爲VC2005,但在VC2008中的步驟是相同的)
你有兩個基本選擇:要麼用純C++(或者其他一些可以/將會生成完全獨立的可執行文件的語言)編寫程序,要麼使用依賴walker來查找需要的DLL,並將它們打包一個安裝程序。
你所建議的(以現有的可執行文件依賴於某些DLL,並試圖「注入」的DLL文件到可執行文件)選項幾乎是不可行的。理論上,您可以(例如)將安裝程序創建爲可執行文件,並讓用戶每次運行程序時都要重新運行安裝程序。這通常會增加用戶可能不喜歡的開銷。
同樣,你可以把DLL的可執行文件作爲二進制資源和使用FindResource
,LoadResource
等,寫出它的內容出來到一個臨時文件 - 但是這需要一些半高級編程,它仍然施加了相當多的開銷。
有沒有什麼辦法可以將我的dll放在我的可執行文件附近並能夠使用它們? – JGC 2010-04-02 15:56:17
@JGC:是的 - 如果你用可執行文件將它們複製到同一個目錄中,系統將能夠找到它們。 – 2010-04-02 17:01:29
你的意思是C++/CLI? – SLaks 2010-04-02 15:43:06