小白解析最简单的MFC及用lc.exe和link.exe链接编译
工具:VS2017
一、创建并写入一个最简单的MFC程序
用VS2017创建一个MFC工程就不在此做介绍了,可以参考CSDN上,随处都有,步步到位。
首先我们要看看什么是MFC----->微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。(来自百度百科)
接下来直接上代码,如下:
#include <afxwin.h>
#include "pch.h"
class CMyWnd : public CFrameWnd
{
};
class CMyApp : public CWinApp
{
BOOL InitInstance();
};
BOOL CMyApp::InitInstance()
{
CMyWnd * pFrame = new CMyWnd();
pFrame->Create(NULL,"FirstMFC");
m_pMainWnd = pFrame;
pFrame->ShowWindow(SW_SHOW);
pFrame->UpdateWindow();
return TRUE;
}
CMyApp theApp;
附图
二、解析以上MFC程序
那么我们知道了MFC是一个封装了Windows API的类库,那么要怎么调用呢,有基础的朋友当然是知道通过的头文件来进行调用。通常来讲,是需要一个名为’stdafx.h’的预编译头文件,即把C++工程中使用的MFC头文件预先编译,加快编译速度。其次,当然需要调用MFC的库头文件,其中’windows.h’的头文件是主要的,然而在’afxwin.h’中已经包含了’windows.h’所以我们直接调用后者。
因为MFC程序至少要包含一个窗口框架类(一个CFrameWnd的子类),一个应用程序类(一个CWinApp的子类),并且需要为CWinApp的子类创建一个实例化对象。在以上代码中的应用程序类,InitInstance的主要工作即作为程序的入口完成窗口创建过程。那么一步步来分析InitInstance中到底发生了什么呢,就以上程序而言,
①CMyWnd类创建对象指针(pFrame)
②完成CreatWindow,创建窗口
③窗口创建后,指针调用ShowWindow函数,窗口显示出来
④刷新窗口,返回值,至此IniInstance结束。
三、用命令行工具编译链接Windows API程序
1、配置环境变量
1️⃣、PATH变量的配置
F:\VS\VC\Tools\MSVC\14.16.27023\bin\Hostx64