win32下用mfc的類出現的問題

2021-05-23 14:08:11 字數 789 閱讀 7737

msvcrt.lib是vc中的multithreaded dll 版本的c執行時庫,而libcmt.lib是multithreaded的執行時庫。

lnk2005這個錯誤是微軟設計錯誤,因此如果遇到這個錯誤,我們只能躲過這個鏈結錯誤。具體的辦法 

就是將那個提示出錯的庫放到另外乙個庫的前面。另外選擇不同的c函式庫,可能會引起這個 

錯誤。ms,   c有兩種c函式庫,一種是普通的函式庫:libc.lib,不支援多執行緒。另外一種是 

支援多執行緒的:msvcrt.lib。如果乙個工程裡,這兩種函式庫混合使用,可能會引起這個錯誤。 

因此建議使用支援多執行緒的msvcrt.lib。

vs2005:cannot open file 'libc.lib'

單擊專案->專案屬性->配置屬性->鏈結器->輸入->忽略特定庫,輸入libc.lib即可。

原因是visual c++ 2005不再支援單執行緒的crt庫(libc.lib)

libc.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有靜態庫版本,也有動態鏈結庫版本;有單執行緒版本,也有多執行緒版本;還有除錯和非除錯版本。

MFC和Win32的區別

參考一 整理自csdn,感謝各位的智慧型,學習了 mfc就是 微軟給你包裝了的庫,提供了很多擴充套件功能,以及高階功能,這樣方便你使用,而不是自己從頭呼叫api來實現 而api由於是mfc下一層,自然實現更靈活,可以根據你的需要來使用,不會被mfc類庫所限制。win32和mfc程式設計的最大不同是 ...

Win32 下 使用CMarkup類遇到的問題

error lnk2005 dllmain 12 已經在 dllmain.obj 中定義 1 nafxcwd.lib afxmem.obj error lnk2005 void cdecl operator delete void 3 yaxpax z 已經在 libcmtd.lib dbgdel....

MFC程式和Win32程式的關係

首先mfc程式需要下面函式庫 1 windows c runtime函式庫 libc.lib msvcrt.lib msvcrtd.lib 2 dll import函式庫 gdi32.lib user32.lib kernel32.lib 3 mfc函式庫 afx函式庫 mfc42.lib mfc4...