实验环境win10/win2012 vs2019 c++
问题背景:
MFC是微软提供的图形界面编程框架,诱人的美丽,但是如果完全按照MFC向导建立程序虽然方便,但是会包含很多文件,应用实际又不一定用得着。
所以,我从空项目建立了一个MFC程序,自定义了一个CFrameWnd子类,但是一运行就报错了。不是代码的问题,而是vs环境配置的问题
首先,错误的详情记不得了(报错提示看着就添堵,给关了),但这个错误包含几个要素:
1.是LNK2019错误
2.跟msvcrtd.dll有关(千万别按照网上提供的下载dll,注册的馊主意来,也没用)
3.错误提示,好像是说,你的入口函数有问题 xxxx_mainxxxxx的
这个错误引发的原因大概可以这样描述,由于是个空项目,IDE无从得知,你写了一个windows程序还是控制台程序,所以默认按照控制台程序,寻找项目的入口点,而MFC程序没有明显的main入口,都是定义好类,就等操作系统把针对窗口的操作消息放入消息队列,然后取之,处理,所以大水冲了龙王庙,一家人不认一家人。所以要如下配置
- 选择共享DLL中使用MFC,字符集建议选择Unicode字符集
- 预处理器新增 _WINDOWS
- 链接器----系统 ---子系统:选择窗口,同理,如果你写的是控制台程序,则选择控制台