我已經使用VC++ 6.0爲Windows XP創建了一個應用程序。該應用程序在Windows XP上運行良好,但是當我嘗試運行此應用程序Windows 7時,它抱怨缺少DLL msvcrt.dll
,msvcp60.dll
等。我的用戶不想在他們使用的每個系統上手動複製這些DLL。爲Windows XP編譯的應用程序不能在Windows 7上運行
那麼如何靜態鏈接這些DLL在VC++ 6.0上,以便用戶不必單獨複製DLL。
我已經使用VC++ 6.0爲Windows XP創建了一個應用程序。該應用程序在Windows XP上運行良好,但是當我嘗試運行此應用程序Windows 7時,它抱怨缺少DLL msvcrt.dll
,msvcp60.dll
等。我的用戶不想在他們使用的每個系統上手動複製這些DLL。爲Windows XP編譯的應用程序不能在Windows 7上運行
那麼如何靜態鏈接這些DLL在VC++ 6.0上,以便用戶不必單獨複製DLL。
可以靜態鏈接到C/CPP運行時庫。
靜態鏈接不會在C/C++運行庫上產生DLL依賴關係。如果您的應用程序由多個DLL構成,則必須確保內存不是以一個二進制文件創建,而是在另一個二進制文件中銷燬。
編輯: MFC可執行項目應改變:
項目屬性 - >常規 - >使用MFC的
更改爲 「使用MFC的靜態庫」
選擇項目/設置...
選擇C/C++標籤
選擇代碼生成從組合框中
在庫下,更改爲多線程。
靜態鏈接庫意味着添加/ MT到我的項目options.But使用/ MT給我一個錯誤。它說「使用/ MD開關爲_afxdll」。刪除_afxdll會影響我的程序嗎? – user3185008
MFC DLL需要/ MD。如果您只有可執行文件,請檢查更新後的答案 – egur