c++ 1:非MFC工程使用MFC库时的问题及解决办法(如果要用CString或者提示windows头文件重复包含)...
非MFC工程使用MFC库时的问题及解决办法(如果要用CString或者提示windows头文件重复包含)
vc6和vc71的工程向导中都包含非MFC的工程,诸如win32 console project, win32 static library。非MFC工程创建时是不支持MFC特性的,然后我们在处理实际问题时有时会用到MFC相关类,如Cstring, Cedit等等,这是很正常的。可能有人会说,为何不在一开始就创建MFC工程呢?问题在于MFC工程会产生很多向导生成代码,如基于单文档的工程会有View,Doc等类,很多时候我们只需要一个空工程就可以了。
二、常见问题
非MFC工程使用MFC库时最常见的问题就是windows.h重复包含错误,具体如下:
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
三、解决办法
非MFC工程使用MFC库时,可参考以下步骤
1、工程设置中,将MFC的使用由原来的“使用标准windows库”改为“在共享DLL中使用MFC”(VC71)
如果是英文版,相关选项是:
Microsoft Foundation Classes: Use MFC in a shared dll, no using MFC(VC6)
NOTE:因为我用的是中文版的vc71,英文版的vc6.
2、头文件包含
不同的MFC类需包含的头文件是不一样的。
常用的类,如Cstring, Cedit 等,包含afxwin.h就可以了
如果不清楚包含什么头文件的话,可以同msdn进行查询,msdn中,对于MFC类的介绍中,都会给出相应的header file requirement.
3、#include 语句一定要写在首行
这一点很重要,通常出现前面讲到的windows.h重复包含错误,都是因为#include 语句没有写在首行。
另外还要注意的是,如果#include语句是在一个头文件里,那么对应头文件的包含也要写在首行。示例如下:
=============
test.h文件的内容如下:
#include <afxwin.h> //保证该语句在首行
test.cpp的文件内容如下:
#include “test.h” //同样也要保证该语句在首行
=============
ps: 这么做的具体原因我也不知道,我是在实际调试中琢磨出这个道理的。我自己在这个问题上花了很多冤枉时间,写下该篇,就是希望大家不要在这个问题上绊脚。
恩
总结如下
如果要用cstring
就包含#include <afxwin.h>
并且要保证这个包含处于首行
我也折腾很久了
转载于:https://www.cnblogs.com/xihuafeiyu/articles/4153548.html
c++ 1:非MFC工程使用MFC库时的问题及解决办法(如果要用CString或者提示windows头文件重复包含)...相关推荐
- 安卓集成云闪付,以及So库冲突多moudle项目解决办法
安卓集成云闪付,以及So库冲突多moudle项目解决办法 支付流程介绍 1.无图无真相 2.前往银联下载修仙工具 3.权限和混淆配置 4.开始编写代码 5.完结撒花 支付流程介绍 交易流程如下图: 安 ...
- (OS 10038)在一个非套接字上尝试了一个操作 的解决办法
在SVN的机器上,系统盘,剩余空间不足1G, 经查看,是C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs里面存在了很多( ...
- 关于python 中h5py库安装不上的解决办法
关于python 中h5py库安装不上的解决办法 问题 解决步骤 1.先安装wheel这个库,方法就是从命令行中输入pip install wheel 2.下载自己对应的h5py的版本,网址如下 3. ...
- Qt中调用OpenCV函数库时Crashed问题的解决。
这几天想在虚拟机上搭建Ubuntu的开发环境,包括了Matlab和QT(C++)的开发工具安装等,同时由于做图像处理,所以还必须要安装FFMPEG和OpenCV库.下面就讲讲我们安装时出现qt中调用O ...
- 在MFC框架下使用osg报内存泄露的解决办法
作者:朱金灿 来源:http://blog.csdn.net/clever101/ 最近正在学习osg,从osgchina网站下下载了osg的debug版本库,具体地址为: OpenSceneGrap ...
- 【DSP】CCS6.1导入CCS3.3工程全过程以及“N个报错”的解决办法
本人小硕,由于接到了一个关于语音识别的项目,一不小心掉到DSP的坑.首先需要解决的就是关于CCS软件的使用,网上N个教程,总感觉自己这边出的问题总能"完美避开"他们的范围,摸爬滚打 ...
- python解释器 pip安装_pip安装Python库时的问题及解决方法总结
pip安装Python库时遇到的问题及解决方法 笔者电脑系统是win7,同时安装了Python2.7和Python3.6,但是在通过命令行直接使用"pip install XXX" ...
- MFC CEdit 中不能使用ctrl+v进行粘贴解决办法
原因是因为没有处理Ctrl+V 的消息响应. 解决办法: 重写 PretranslateMessage函数.在PretranslateMessage中截获CEdit响应Ctrl+V 消息,然后截 ...
- GD库图片裁剪指定形状解决办法(PHP GD库 海报)
需求描述:需要把图片裁剪成一个指定的平行四边形,目的是使用GD库,把裁剪后的图片放在底图上面,使最终合成的图片看起来是一个底图+平行四边形的样子 提示:可以结合本作者的其他文章,来生成一个定制化的海报 ...
最新文章
- audio 上一首 下一首 自定义样式_总有一首网易云,藏着你忘不掉的人。
- 信息系统项目管理师教材【下载PDF】
- css表格文字超数量就竖排_求助!!一个非常棘手的问题。就是文字竖排显示的问题...
- 地壳中元素含量排名记忆口诀_【中考化学】初中化学记忆性知识点03-生活中的化学-生活常识...
- SlideringDrawer的使用(抽屉效果)
- mysql语法中的LIMIT的用法
- 智慧交通day02-车流量检测实现02:多目标追踪
- werkzeug serving.run_simple
- vue.js基础知识篇(4):过滤器、class与style的绑定2
- H5游戏助力区块链成2019年新玩法?
- 查看自己本地IP地址方法
- 为什么if else过多会影响程序性能?(英文版)
- Matlab 两条曲线间填充颜色,改变透明度
- CSS 设置文字间距
- 举重若轻流水行云,前端纯CSS3实现质感非凡的图片Logo鼠标悬停(hover)光泽一闪而过的光影特效
- Java 回调函数Callback
- 虚拟机MAC地址冲突,如何生成新的mac地址
- 《谁说菜鸟不会数据分析 入门篇》学习笔记
- 解决org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
- 【splay】BZOJ 1152 3506:[cqoi2014]排序机械臂
热门文章
- ​智能驾驶疆场,海天瑞声的「数据」纵横论
- CVPR 2020 Oral|效果超群的老照片“复活”算法
- VALSE 2020 公开征集 Workshop 候选讲者
- ICCV NAS Workshop 最佳论文提名:通过层级掩码实现高效神经网络架构搜索
- OpenVSLAM:日本先进工业科技研究所新开源视觉SLAM框架
- 《Python编程从入门到实践》记录之Python函数返回值
- 【绝对干货】TEASER前传之QUASAR:基于四元数的存在外点Wahba问题的可证明最优解
- python__画图表可参考(转自:寒小阳 逻辑回归应用之Kaggle泰坦尼克之灾)
- 配置linux登录超时命令,LINUX中 设置登录超时
- IDEA 安装JUnitGenerator V2.0 插件 帮助生成单元测试