控制台程序使用MFC类的方法

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了控制台程序使用MFC类的方法相关的知识,希望对你有一定的参考价值。

(unresolved external symbol __endthreadex解决办法)

 

1、新建控制台程序:

技术分享

 

技术分享

 

技术分享

 

2、添加源代码如下:

 

[cpp] view plain copy
 
 print?
  1. #include <afx.h>  
  2. #include <stdio.h>  
  3.   
  4. int main()  
  5. {  
  6.     int         lo, hi;  
  7.     CString     str;  
  8.     CStdioFile  pFile;  
  9.       
  10.     pFile.Open("FIBO.DAT", CFile::modeWrite |  
  11.                            CFile::modeCreate|  
  12.                            CFile::typeText);  
  13.       
  14.     str.Format("%s/n", "Fibonacci sequencee, less than 100 :");  
  15.     printf("%s", (LPCTSTR) str);  
  16.     pFile.WriteString(str);  
  17.       
  18.     lo = hi = 1;  
  19.       
  20.     str.Format("%d/n", lo);  
  21.     printf("%s", (LPCTSTR) str);  
  22.     pFile.WriteString(str);  
  23.       
  24.     while (hi < 100)  
  25.     {  
  26.         str.Format("%d/n", hi);  
  27.         printf("%s", (LPCTSTR) str);  
  28.         pFile.WriteString(str);  
  29.         hi = lo + hi;  
  30.         lo = hi - lo;  
  31.     }  
  32.       
  33.     pFile.Close();  
  34.     return 0;  
  35. }  

 

 

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

以上是关于控制台程序使用MFC类的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何将入口点更改为 MFC 应用程序的 _tmain()

MFC窗体程序中添加调试控制台

MFC程序显示控制台输出

如何在单独的 mfc 控制台应用程序中使用 mfc 应用程序的对话框?

Win32控制台应用程序怎样使用MFC中的CFile类?

控制台程序可以使用MFC里面的一些函数和类吗