出現這類問題一般是由於所運行的項目是VC6(或者vs2003)創建的,而後又用VS2005或者更高版本工具打開項目導致的,原因都是因爲LIBCD.lib文件被更改了.要解決問題的話,只要在鏈接設置那裏忽略它就沒問題了。
解決辦法是:
第一種方案:在項目-屬性-鏈接器- 命令行 加 /nodefaultlib:libcd
第二種方案:在項目-屬性-鏈接器- 輸入-忽略特定庫加:LIBCD.lib
兩種方法都可以。
再轉載一些別人相關的資料
•Run-Time Library是編譯器提供的標準庫,提供一些基本的庫函數和系統調用。
我們一般使用的Run-Time Library是C Run-Time Libraries。當然也有Standard C++ libraries。
C Run-Time Libraries實現ANSI C的標準庫。VC安裝目錄的CRT目錄有C Run-Time庫的大部分源代碼。 C Run-Time Libraries有靜態庫版本,也有動態鏈接庫版本;有單線程版本,也有多線程版本;還有調試和非調試版本。
•動態鏈接庫版本:
/MD Multithreaded DLL 使用導入庫MSVCRT.LIB
/MDd Debug Multithreaded DLL 使用導入庫MSVCRTD.LIB
•靜態庫版本:
/ML Single-Threaded 使用靜態庫LIBC.LIB
/MLd Debug Single-Threaded 使用靜態庫LIBCD.LIB
/MT Multithreaded 使用靜態庫LIBCMT.LIB
/MTd Debug Multithreaded 使用靜態庫LIBCMTD.LIB
若要使用此運行時庫 請忽略這些庫
單線程 (libc.lib) libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多線程 (libcmt.lib) libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用 DLL 的多線程 (msvcrt.lib) l ibc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
調試單線程 (libcd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
調試多線程 (libcmtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用 DLL 的調試多線程 (msvcrtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib