CMake创建MFC桌面应用

CMake创建MFC桌面应用

安装

项目代码

  • CMakeLists.txt (关键
cmake 复制代码
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
cpp 复制代码
#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
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"));
}
相关推荐
萌の鱼34 分钟前
leetcode 53. 最大子数组和
数据结构·c++·算法·leetcode
水水阿水水39 分钟前
第二章:面向对象之封装(一)
开发语言·c++·算法
苹果2 小时前
C++二十三种设计模式之工厂方法模式
c++·设计模式·工厂方法模式
数维学长9862 小时前
C++ STL 中的 `unordered_map` 和 `unordered_set` 总结
c++·算法·哈希算法
旧物有情2 小时前
蓝桥杯历届真题--#好数,简单模拟(C++,Java)
java·c++·蓝桥杯
xianwu5432 小时前
反向代理模块。
linux·开发语言·网络·c++·git
智驾3 小时前
SOLID原则学习,里氏替换原则
c++·里氏替换原则·solid
7yewh3 小时前
【LeetCode】力扣刷题热题100道(6-10题)附源码 相交链表 回文链表 反转链表 合并链表 移动零(C++)
c语言·数据结构·c++·算法·leetcode·链表·贪心算法
程序员老冯头3 小时前
第三十六章 C++ Web 编程
开发语言·c++·microsoft
bohu833 小时前
4.5 在C++节点中使用参数
c++·ros2·参数通信