小白解析最简单的MFC及用lc.exe和link.exe链接编译

本文详细介绍了如何创建最简单的MFC程序,解析MFC程序的结构和工作原理。并通过命令行工具cl.exe和link.exe编译链接Windows API及MFC程序,探讨了环境变量配置、异常处理及链接库的问题。最后对比了命令行与VS2017编译生成的.obj文件大小。
摘要由CSDN通过智能技术生成

工具: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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值