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"));
}
相关推荐
I_belong_to_jesus4 小时前
C++关于分支预测的优化1
开发语言·c++·算法
Rabitebla6 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
码客-ygluu11 小时前
一个通用游戏数据服务器
c++·架构
another heaven11 小时前
【C/C++ Ranges 是零开销抽象吗?拆开管道、惰性求值和编译期膨胀】
c语言·开发语言·c++
YLCHUP14 小时前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
xiaoye-duck14 小时前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
思麟呀14 小时前
背包DP(01背包+完全背包)
c++·算法
旖旎夜光16 小时前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
ShineWinsu16 小时前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页
俊俊几年的17 小时前
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
linux·c++·算法·leetcode·嵌入式·动态规划·c