unresolved external symbol __endthreadex錯誤解決

轉載地址:http://apps.hi.baidu.com/share/detail/534372

在用VC6.0寫程序調試時,初學者總是會遇到一些錯誤,針對如下錯誤主要是因爲MFC類庫沒有引用所出現的問題。
錯誤現象:
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/jnHid.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
解決錯誤的方法:
選擇Project-Settings--General--Microsoft foundation Classes
下拉列表中有三個選項:
1、Not using MFC
2、Use MFC in a Static Libray
3、Use MFC in a Shared DLL


錯誤提示:

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Hello.exe : fatal error LNK1120: 3 unresolved externals

第一種解決方法:

1、“Project”->“settings”->“c/c++”

“Catagory” 選擇“Code Generation”

“use run-time library”選擇“debug multithreaded”

此時確定一般解決問題,也有可能出現如下問題提示:

libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Hello.exe : fatal error LNK1120: 1 unresolved externals

此時,進行第二步操作:

2、

[Project] --> [Settings] --> 選擇"Link"屬性頁,
在Project Options中將/subsystem:console改成/subsystem:windows

溫馨提示:在Project Options窗口,右邊滑動條向下滑動就會找到該項!

總結:進行以上兩步操作後,問題解決!

第二種解決方法:

1.檢查是否包含頭文件afx.h
2.打開project->settings->general->microsoft foundation classes->
選use MFC in a static library
或選 use MFC in a shared DLL(需要把MFC的動態庫放在system32文件夾下) .

本人是碰到的

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex

這兩行錯誤,故用第二種方法解決,分析原因是我調用了MFC類庫,但建立的控制檯程序默認不加載MFC類庫,故需要改此處設置。

第一種方法是在網上搜的,碰到類似的問題可以嘗試一下。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章