GacLib
久仰轮子哥的 GacUI,所以特地尝试复现了一下 Hello world 的 demo
这里使用的是 1.1.0.0 版本
选择空项目
用终端打开 Hello-world 项目所在的文件夹,用命令行建立项目基本结构
touch GacUI.xml mkdir UI mkdir UISource touch UIResource.xml mkdir Lib touch Main.cpp touch WinMain.cpp
整体结构如下
H:INTRO-GACUIHELLO-WORLD
│ GacUI.xml
│ hello-world.sln
│ hello-world.vcxproj
│ hello-world.vcxproj.filters
│ hello-world.vcxproj.user
│ Main.cpp
│ WinMain.cpp
│
├─Lib
├─Tools
│ CppMerge.exe
│ GacBuild.ps1
│ GacClear.ps1
│ GacCommon.ps1
│ GacGen.ps1
│ GacGen32.exe
│ GacGen64.exe
│ GlrParserGen.exe
│ ParserGen.exe
│ Reflection32.bin
│ Reflection64.bin
│ StartProcess.ps1
│
└─UI
│ Resource.xml
│
└─Source
参考 Gaclib 完成 UIResource.xml 和 GacUI.xml 的内容,并加入所需 Lib 文件
在 Hello-world 文件夹下以运行 Powershell
.ToolsGacBuild.ps1 .GacUI.xml
使用 Visual Studio 2022 打开 hello-world.sln
在源文件 中添加现有项,包括
- Main.cpp
- WinMain.cpp
- UIResourceHelloWorldPartialClasses.cpp
- LibSkinsDarkSkinDarkSkin.cpp
- Lib 文件夹下所有的 .cpp 文件
在头文件中添加现有项,包括
- UIResource 文件夹下的 HelloWorld.h 和HelloWorldPartialClasses.h
- LibSkinsDarkSkinDarkSkin.h
- Lib 文件夹下所有.h文件
参考 Gaclib 完成 Main.cpp 和 WinMain.cpp 的内容
配置 VS 2022 项目构建信息在 VS 2022 中右键点击 hello-world 项目,选择属性
设置 cpp 标准GacUI 最新的 Release 中使用到了 char8_t,因此选择 C++ 20 标准
为 Debug 模式添加预处理器定义
将 Lib 文件夹添加包含目录(include 目录)
由于 Visual Studio 空项目默认是控制台项目,而 GacUI 是一个图形化界面,因此需要将链接器属性改为窗口
由于编译过程中生成的对象文件很大,因此需要在C/C++ -> 命令行设置 /bigobj增加了对象文件可包含的节数
本文完成了GacUI 的Hello-world demo 在Debug模式下的复现,Release 模式的步骤基本一致,只需要将项目属性的配置改为 Release 即可。在Debug模式下生成的可执行文件目录为x64Debug
如果需要单独运行.exe的可执行文件,可以将生成的 hello-world.exe 同项目根目录下的 hello-world.bin 文件一起复制到一个文件夹中,双击.exe文件即可运行



