(unresolved external symbol __endthreadex解決辦法)
1、新建控制台程序:
2、添加源代碼如下:
- #include <afx.h>
- #include <stdio.h>
- int main()
- {
- int lo, hi;
- CString str;
- CStdioFile pFile;
- pFile.Open("FIBO.DAT", CFile::modeWrite |
- CFile::modeCreate|
- CFile::typeText);
- str.Format("%s/n", "Fibonacci sequencee, less than 100 :");
- printf("%s", (LPCTSTR) str);
- pFile.WriteString(str);
- lo = hi = 1;
- str.Format("%d/n", lo);
- printf("%s", (LPCTSTR) str);
- pFile.WriteString(str);
- while (hi < 100)
- {
- str.Format("%d/n", hi);
- printf("%s", (LPCTSTR) str);
- pFile.WriteString(str);
- hi = lo + hi;
- lo = hi - lo;
- }
- pFile.Close();
- return 0;
- }
3、編譯是鏈接出錯:
Compiling...
Console.cpp
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/MFCConsole.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Console.exe - 3 error(s), 0 warning(s)
4、分析原因:
上述連接錯誤表示找不到__endthreadex與__beginthreadex,我們的程序有調用它們嗎?沒有,但是MFC有(afx.h)
5、解決辦法
unresolved external symbol __endthreadex錯誤解決
A、設置靜態鏈接庫
選擇Project-Settings--General--Microsoft foundation Classes
下拉列表中有三個選項,選擇2/3即可:
1、Not using MFC
2、Use MFC in a Static Libray
3、Use MFC in a Shared DLL
B、設置C Runtime函數庫
Project / settings / c/c++ / Catagory / Code Generation
use run-time library”選擇“debug multithreaded”
6、關於C Runtime
http://blog.csdn.net/wangningyu/article/details/4642421