在win32项目中用向导添加MFC类

1.项目中必须包含一个stdafx.h并且其中一定要有
#include <afxwin.h>
2.经过上一步后,就可以添加MFC类了,但每回添加MFC类的时候VS会说
default.htm PopulateUnusedDialogIDs() 中的错误:
无法访问资源信息。请检查 .rc文件是否在另一个编辑器中打开。
只要为这个项目添加一个"项目名.rc"文件(点菜单中的"项目"->"添加资源",然后取消出现的对话框就可以了)
3.还有生成的新类的构造函数和析构函数默认都是protected的,得手工把它改成public的
4.最后在编译的时候还会出现:
fatal error C1189: #error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
修改项目属性中的"常规"->"MFC的使用"或"C/C++"->"代码生成"->"运行时库"
5.设置预编译头文件(这一步可以略过,但可能在编译的时候会比较慢)
再添加一个stdafx.cpp(文件名可以随便,但一定要是cpp的),在里面只写
#include "stdafx.h"
然后设置文件的属性(only .cpp)的"预编译头"->"创建/使用预编译头",除了stdafx.cpp设置成"创建预编译头(/Yc)",其它的都设置成"使用预编译头(/Yu)".当设置这两项的时候VS为我们设置了默认的预编译头文件(即:"通过文件创建/使用 pch"和"预编译头文件")
再有就是在每个包含stdafx.h文件一定要把#include "stdafx.h"放到第一行
(有关预编译头文件的详细说明可以自己google一下,很详细的:)
然后编译通过,就可以在win32项目中用向导添加MFC类了
但是要想调用dlg资源必须加上

 int nRetCode = 0;

 // 初始化 MFC 并在失败时显示错误
 if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
 {
  // TODO: 更改错误代码以符合您的需要
  _tprintf(_T("错误: MFC 初始化失败\n"));
  nRetCode = 1;
 }
 else
 {
  // TODO: 在此处为应用程序的行为编写代码。
 }

这段 (自己摸索结果)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值