1. 程式人生 > >VC6的工程轉到VC2010或更高版本出現fatal error C1189編譯錯誤的解決方法

VC6的工程轉到VC2010或更高版本出現fatal error C1189編譯錯誤的解決方法

代碼 ram 選擇 spa file 線程 c11 靜態庫 block

以前也遇到過,當時解決了沒寫下來,這次正好又遇到了,就順手寫一下吧,別下次又忘記了。

當VC6的工程轉到VC2010或更高版本時編譯出現如下錯誤:

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds

很多解決方法是把工程屬性中的“常規”-“MFC的使用”中的選項要對應“C/C++”-“代碼生成”-“運行庫”中的選項,比如前面選擇了“在靜態庫中使用MFC”,後面就應該選擇“多線程調試/MTd”;前面選擇了“在共享DLL中使用MFC”,後面就應該選擇“多線程調試DLL/MDd”。當然,你需要對DEBUG和RELEASE版本分別做修改。

如果這時候問題依舊沒有解決,那麽本文的重點就來了,再次打開工程屬性,找到“C/C++”-“預處理器”-“預處理器定義”,把其中“_AFXEXT”的定義刪除。

不知道怎麽刪?後面有個下拉按鈕,點開來後選擇“編輯”,在彈出的窗口中把它刪掉,重新編譯,如果還沒有解決你的問題,那就給我留言吧,看看能不能幫到你!

VC6的工程轉到VC2010或更高版本出現fatal error C1189編譯錯誤的解決方法