首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VC6.0 MFC 控制台應用鏈接錯誤 LNK2001: __beginthreadex/__endthreadex 解決方案

     編輯:程式設計綜合問答

錯誤現象

error LNK2001: unresolved external symbol __endthreadex
error LNK2001: unresolved external symbol __beginthreadex
fatal error LNK1120: 2 unresolved externals

根因

項目配置為「Win32 Console Application」且勾選「Support MFC」,但運行時庫設置不匹配:代碼使用 MFC 共享 DLL,鏈接器卻默認靜態運行時庫,缺少 _beginthreadex 等 CRT 入口符號。

解決步驟

  1. 打開 Project → Settings → C/C++ → Code Generation。
  2. Use run-time library 選擇 Debug Multithreaded DLL (調試) 或 Multithreaded DLL (發布)。
    對應命令行參數:/MDd / /MD。
  3. 確保 Link → General → Entry-point symbol 為空(默認)。
  4. 重新構建。

完整可運行最小代碼

#include 
#include 

CWinApp theApp;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) {
    int nRetCode = 0;
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) {
        nRetCode = 1;
    } else {
        CString strHello(_T("Hello MFC Console"));
        AfxMessageBox(strHello);
        std::cout << (LPCTSTR)strHello << std::endl;
    }
    return nRetCode;
}

參考資源

新浪博客《VC6 控制台 MFC 程序配置詳解》:https://blog.sina.com.cn/s/blog_64ecfc2f0100z327.html

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved