基于MFC的程序以及命令行工具cl.exe,linker.exe实现编译链接

一、实现简单的MFC窗口创建

1.MFC应用程序创建

打开Virtual Studio 2017后,点击创建新项目,然后在搜索框中输入MFC,接着选择MFC应用,选择完成后,点击下一步,配置新项目
在这里插入图片描述
对MFC应用程序类型的选择,根据自己的需求选择,选择多个文档
点击完成,一个基于MFC的对话框类型的程序就创建完成
在这里插入图片描述
点击 “解决方案” 中的 “源文件”,只需保留 stdafx.cpp 把其他的源文件删掉,添加mfc.cpp
在这里插入图片描述
输入代码

#include  "stdafx.h"		// 引入MFC的库
// 继承了CFrameWnd的子类CFristMFC,主要实现了Window窗口
class  CFristMFC : public  CFrameWnd
{
public:
        CFristMFC()
	{
                 Create(NULL, _T("First MFCApplication"), WS_OVERLAPPEDWINDOW, rectDefault);
	}
};
// 继承了CWinApp 的子类 CMFCApp,主要实现应用程序。
class  CMFCApp : public  CWinApp
{
public:
	//虚函数 InitInstance,作为程序的入口。
	virtual BOOL InitInstance();
};
BOOL CMFCApp::InitInstance()
{
	m_pMainWnd = new CFristMFC();
	//设置窗体的大小
	m_pMainWnd->MoveWindow(500, 300, 640, 480, FALSE);
	//固定窗体的大小
	SetWindowLong(m_pMainWnd->m_hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU);
	//显示窗体
	m_pMainWnd->ShowWindow(m_nCmdShow);
	//获得窗口的绘图区
	CDC* dc = m_pMainWnd->GetDC();
	//设置背景颜色
	dc->FillSolidRect(0, 0, 640, 480, RGB(0, 200, 255));
	//写上一句话
	dc->TextOutW(20, 20, _T("我爱你中国"));
	//更新窗体
	m_pMainWnd->UpdateWindow();
	return TRUE;
}
// 实例化CHellowApp类的对象 FristMFCApp。
CMFCApp FristMFCApp;

运行之后
在这里插入图片描述

二、采用命令工具cl.exe,linker.exe实现编译链接

1.命令行工具cl.exe,linker.exe编译链接一个Window API程序

先在电脑文件搜索找到 cl.exe 文件的路径,每个人都不一样。

D:\VS\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x86

然后进入控制面板,点击高级系统设置,点击 环境变量(N)
在这里插入图片描述

在这里插入图片描述

在 用户变量下,选中Path后,点击编辑 ,将之前我们找到的cl.exe复制下来,然后新建,复制地址,再点击确定
在这里插入图片描述
然后
在在系统变量中新建 INCLUDE 环境变量,添加如下内容:
在这里插入图片描述

在这里插入图片描述

找到 WindowsProject1.c 所在目录,然后在上面地址栏输入 cmd 进入命令行窗口
在这里插入图片描述然后就出现以下错误
在这里插入图片描述
这里花了很久的时间,网上这方面的例子比较少,找了很久。需要C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE
把:msobj140.dll, mspdb140.dll, mspdbcore.dll, mspdbsrv.exe四个文件复制到:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64
在这里插入图片描述
解决问题后,使用cl编译,再使用link链接obj文件得到exe文件,执行得到WindowAPI 的窗口程序

在这里插入图片描述

2.命令行工具cl.exe,linker.exe编译链接一个MFC程序

跟上面命令行工具cl.exe,linker.exe编译链接一个Window API程序的步骤基本一样,如图展示

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/iostreamhvoid/article/details/109069114