CMake創(chuàng)建MFC桌面應用的實現(xiàn)
安裝
(非必須)VC_redist.x86和VC_redist.x64:https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
(必須)使用Visual Studio生成工具安裝“C++桌面開發(fā)”(所有默認選中的,不要刪):https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/
- 或者安裝 Visual Studio Community 時,選“C++桌面開發(fā)”
- 選了“C++桌面開發(fā)”后,記得在右邊選上 MFC
(非必須)使用 CLion 開發(fā)(或者使用其他編輯器,自己在CMake指定生成器)
- 配置默認ToolChain為 Visual Studio,CLion會自動從已安裝的Visual Studio中讀取
項目代碼
- 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創(chuàng)建MFC桌面應用的實現(xiàn)的文章就介紹到這了,更多相關CMake創(chuàng)建MFC桌面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
c++棧內(nèi)存和堆內(nèi)存的基本使用小結(jié)
本文主要介紹了c++棧內(nèi)存和堆內(nèi)存的基本使用小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-07-07
關于C++中push_back()函數(shù)的用法及代碼實例
push_back是vector的一個方法,表示將一個元素存儲到容器的末尾,下面這篇文章主要給大家介紹了關于C++中push_back()函數(shù)用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11
COLORREF,COLOR,RGB,CString的轉(zhuǎn)化總結(jié)分析
實際的軟件開發(fā)過程中,常需要用到非.net平臺的代碼。這時候就可能碰到ColorRef(也就是以int類型代表的顏色值或是以DWORD值表示的顏色)。這跟.net平臺下的顏色的相互轉(zhuǎn)換MS并沒有直接實現(xiàn)2013-09-09
深入理解C++中的new和delete并實現(xiàn)對象池
這篇文章主要介紹了C++中的new和delete并實現(xiàn)對象池,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09

