控制台程序使用MFC类的方法
(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
控制台程序使用MFC类的方法的更多相关文章
- C# 如何利用反射来加载程序集,并调用程序集中有关类的方法【转】
假设在C盘根目录下有个Dog的Dll程序集文件,该程序集文件中包含类Dog 该类中有个狗叫几声的方法,如何通过反射来加载这个C:\Dog.dll,并且调用Dog类里面的Sound方法呢: public ...
- console中应用MFC类的方法
1.添加#include <afx.h>或者<afxwin.h> 这时会报错1>c:\program files\microsoft visual studio 8\vc ...
- C运行时库(C Run-time Library)详解(提供的另一个最重要的功能是为应用程序添加启动函数。Visual C++对控制台程序默认使用单线程的静态链接库,而MFC中的CFile类已暗藏了多线程)
一.什么是C运行时库 1)C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数. 2)C 语言是所谓的“ ...
- VC++中的C运行时库浅析(控制台程序默认使用单线程的静态链接库,而MFC中的CFile类已暗藏了多线程)
1.概论 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的.C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于 ...
- 回调函数中使用MFC类的成员或对话框控件的简单方法
在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量.类成员函数,亦或者对话框控件的句柄.由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制.. ...
- MFC中的CString类使用方法指南
MFC中的CString类使用方法指南 原文出处:codeproject:CString Management [禾路:这是一篇比较老的资料了,但是对于MFC的程序设计很有帮助.我们在MFC中使用字符 ...
- C++第四十三篇 -- VS2017创建控制台程序勾选MFC类库
用VS2017创建EXE带MFC类库方法 1. File --> New --> Project 2. Windows桌面向导 3. 勾选MFC类库 4. 创建成功 如果项目编译出错 1. ...
- 使用 CommandLineApplication 类创建专业的控制台程序
闲话 在很久很久以前,电脑是命令行/终端/控制台的天下,那屏幕上的光标在行云流水般的键盘敲击下欢快地飞跃着,那一行行的字符输出唰唰唰地滚动着--直到 Windows 95 的出现(那时候我还不知道苹果 ...
- Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法
Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法 最近由于老师要求要在Ubuntu下QT上进程多线程服务器的开发,虽然只是单纯的调用qt的network模块,但是为了避免麻烦,我 ...
随机推荐
- react 编写组件 五
看以下示例了解如何定义一个组件 // 定义一个组件LikeButton var LikeButton = React.createClass({ // 给state定义初始值 getInitialSt ...
- 无法打开登录所请求的数据库 "XXX"。登录失败。 用户 'NT AUTHORITY\SYSTEM' 登录失败。
1.打开数据库安全性-登录名 2.选择NT AUTHORITY\SYSTEM右键属性 3.选择服务器角色勾选sysadmin选项保存
- Android开发之Menu组件
菜单Menu大致分为三种类型:选项菜单(OptionsMenu),上下文菜单(ContextMenu),子菜单(SubMenu). 1.选项菜单 在一个Activity界面中点击手机Menu键,在屏幕 ...
- 总结Qt中经常出现的一些问题
1.Qt中用高版本打开低版本的工程 编译时出现错误 : C1189: #error : "This file was generated using the moc from 4.7.0. ...
- 时间处理总结(二)oracle
不断总结中................. 1.等于land.djsj=to_date('2016/7/26','yyyy-MM-dd')2.大于等于land.djsj>=to_date('2 ...
- angularjs ios title不能修改的bug的解决方法
在app.js加入下面这句代码 就可以解决. function ($rootScope, $state, $stateParams, $log, httpService, apiUrl, cookie ...
- Jquery VailDate初探
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Codevs 5208 求乘方取模
5208 求乘方取模 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 未定级 题目描述 Description 给定非负整数A.B.M,求(A ^ B) mod M. 输入描述 Inpu ...
- Poj 2115 C Looooops(exgcd变式)
C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22704 Accepted: 6251 Descripti ...
- Sdut 2165 Crack Mathmen(数论)(山东省ACM第二届省赛E 题)
Crack Mathmen TimeLimit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Since mathmen take security ...