又让厂公着半天急----一例自定义MFC程序编译时LNK2019错误

实验环境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

  • 链接器----系统 ---子系统:选择窗口,同理,如果你写的是控制台程序,则选择控制台

原文地址:https://www.cnblogs.com/saintdingspage/p/12399281.html