当前位置: 代码迷 >> 综合 >> 基于MFC的程序以及命令行工具cl.exe,linker.exe实现编译链接
  详细解决方案

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

热度:22   发布时间:2024-02-29 12:14:41.0

文章目录

  • 一、实现简单的MFC窗口创建
    • 1.MFC应用程序创建
  • 二、采用命令工具cl.exe,linker.exe实现编译链接
    • 1.命令行工具cl.exe,linker.exe编译链接一个Window API程序
    • 2.命令行工具cl.exe,linker.exe编译链接一个MFC程序

一、实现简单的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程序的步骤基本一样,如图展示

在这里插入图片描述

  相关解决方案