CMake创建MFC桌面应用的实现

 更新时间:2026年06月29日 11:24:15   作者:伐尘  
本文主要介绍了CMake创建MFC桌面应用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

安装

项目代码

  • CMakeLists.txt (关键
cmake_minimum_required(VERSION 3.0)
project(mfc_demo)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")
# 1: static MFC library, 2: shared MFC library
set(CMAKE_MFC_FLAG 2)
#find_package(MFC)
#if(NOT MFC_FOUND)
#    message(FATAL_ERROR "MFC is not found, please check MFC installation")
#endif()
add_executable(mfc_demo mfc.cpp)
#target_sources(mfc_demo PRIVATE
#        mfc.cpp
#        )
#set_target_properties(mfc_demo PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS")
target_compile_definitions(mfc_demo PRIVATE
        -DWIN32
        -D_DEBUG
        -D_WINDOWS
        -D_UNICODE
        -DUNICODE
        -D_AFXDLL
        )
target_link_options(mfc_demo PRIVATE
        /ENTRY:wWinMainCRTStartup
        )
  • mfc.h
#ifndef MFC_DEMO_MFC_H
#define MFC_DEMO_MFC_H

#include <afxwin.h>

class MyApp:public CWinApp {
public:
    virtual BOOL InitInstance();
};

class MyFrame:public CFrameWnd
{
public:
    MyFrame();

};

#endif //MFC_DEMO_MFC_H

  • mfc.cpp
#include "mfc.h"

MyApp app;

BOOL MyApp::InitInstance()
{

    MyFrame* frame = new MyFrame;
    frame->ShowWindow(SW_SHOWNORMAL);
    frame->UpdateWindow();

    m_pMainWnd = frame;

    return TRUE;
}

MyFrame::MyFrame() {
    Create(NULL, TEXT("mfc"));
}

到此这篇关于CMake创建MFC桌面应用的实现的文章就介绍到这了,更多相关CMake创建MFC桌面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一波C语言二元查找树算法题目解答实例汇总

    一波C语言二元查找树算法题目解答实例汇总

    这篇文章主要介绍了一波C语言二元查找树算法题目解答实例汇总,包括按层次遍历和转换为镜像等基本算法题目,需要的朋友可以参考下
    2016-03-03
  • c++栈内存和堆内存的基本使用小结

    c++栈内存和堆内存的基本使用小结

    本文主要介绍了c++栈内存和堆内存的基本使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • C语言实现快速排序算法

    C语言实现快速排序算法

    这篇文章主要为大家详细介绍了C语言实现快速排序算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 关于C++中push_back()函数的用法及代码实例

    关于C++中push_back()函数的用法及代码实例

    push_back是vector的一个方法,表示将一个元素存储到容器的末尾,下面这篇文章主要给大家介绍了关于C++中push_back()函数用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • C++如何向Lambda传递参数与捕获

    C++如何向Lambda传递参数与捕获

    文章介绍了C++中向Lambda表达式传递参数和使用捕获列表的基本规则和示例,参数传递要求严格匹配类型和数量,而捕获列表允许Lambda访问外部变量,并可以按值或引用捕获,文章还讨论了捕获的陷阱和解决方案,以及参数传递与捕获列表的区别和应用场景,感兴趣的朋友一起看看吧
    2025-03-03
  • C++通过SQLiteSDK增删改查的实现示例

    C++通过SQLiteSDK增删改查的实现示例

    SQLite是一种轻量级的嵌入式数据库,可以利用SQLiteSDK执行数据库的增删改查操作,本文主要介绍了C++通过SQLiteSDK增删改查,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • C++实现访问者模式的基础介绍

    C++实现访问者模式的基础介绍

    访问者模式表示一个作用于某对象结构中各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。对C++访问者模式相关知识感兴趣的朋友一起看看吧
    2021-09-09
  • C++浅析程序中内存的分布

    C++浅析程序中内存的分布

    这篇文章主要介绍了C++内存分布及用法,从内存的基础概念到内存分配进行了讲解,内存是我们开发中最重要的一部分,往往逻辑上的错误就会造成内存泄漏,导致程序无法运行,下面我们就来了解文章对该内容的详细介绍
    2022-08-08
  • COLORREF,COLOR,RGB,CString的转化总结分析

    COLORREF,COLOR,RGB,CString的转化总结分析

    实际的软件开发过程中,常需要用到非.net平台的代码。这时候就可能碰到ColorRef(也就是以int类型代表的颜色值或是以DWORD值表示的颜色)。这跟.net平台下的颜色的相互转换MS并没有直接实现
    2013-09-09
  • 深入理解C++中的new和delete并实现对象池

    深入理解C++中的new和delete并实现对象池

    这篇文章主要介绍了C++中的new和delete并实现对象池,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09

最新评论