Gaclib 小白使用教程(1)
来源:互联网 发布:犹大福音 知乎 编辑:程序博客网 时间:2024/05/21 11:42
轮子哥的gaylib,小白教程。
环境:VS2017社区版
轮子哥gaclib源代码地址;https://github.com/vczh-libraries/Release
一、新建文件夹Gaclib_01,将源代码中的Import文件夹和Tools文件夹拷贝到此处,我们将在这个文件夹中创建工程,如下图1-1所示:
创建空项目Gaclib,然后在该空项目中添加空项目Launcher,如下图1-2所示:
二、Gaclib筛选器“头文件”重命名为“Import”,并添加Import文件夹中的如下文件,新建WinMain.cpp(直接拷贝源代码Release-master\Tutorial\Lib\GacUILite中的Winmain代码)如图2-1所示:
右键Gaclib 项目,设置属性,要分别设置:
(1)常规,选择静态库和使用unicode字符集
(2)C+>>常规中添加附加包含目录,包含Import文件夹
(3)C++>>预处理器设置为WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION
设置完毕之后F7编译可以看到生成的Gaclib.lib文件。
三、静态库已经有了,现在只需要调用就可以了,
(1)在解决方案下新建文件夹UIRes,Launcher文件夹中新建 文件夹UI,在UI文件夹中新建文件夹Source,将Tools中的GacGen32.exe和准备好的xml文件拷贝到UI文件夹中。在该 文件夹下打开命令行运行命令:GacGen32.exe Resource.xml ,之后将会自动在UIRes文件夹中生成bin文件,Source文件夹中自动c++代码。如果不按照之前说的先建立好空白文件夹将不能生成bin文件和c++代码。
(2)添加文件到Launcher项目中,主要包含引用库文件,UI文件夹中生成的类,Main.cpp(可直接复制源代码示例中的,基本相同)以及原始的xml文件,如下图所示:
(3)右键设置工程属性,做如下设置:
1、常规:使用 unicode字符集
2、VC++目录:包含目录添加Import
3、C++预处理器:WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION
4、 链接器:系统》子系统设置为窗口
设置完成后能够正常编译,运行 如下图所示:
四、但是当我们点击 calculate按钮之后就会发现程序抛出异常,并没有完成计算。这是为什么呢?
仔细想想是因为我们压根就没有写这个点击按钮的函数,轮子哥自动帮我们生成了一个空壳,具体内容还要靠我们自己去填充 。联想起我之前使用的duilib,轮子哥让我们不再需要手去手写xml对应的类,用起来确实是爽的一笔,并且gaclib还提供了超级多的像数据绑定之类的超级方面超级爽的功能,这些是duilib远远不能给与我们的。轮子大法好!
好现在去找到生成的代码中,按钮对应的函数填充以下就可以了,直接去mainwindow.cpp中找到buttonCalculate_Clicked函数:
将throw ::vl::Exception(L"You should implement this function.");换上我们想要的代码:
这里的buttonCalculate_Clicked是我们在xml文件中就指定的函数名字,并不是凭空想出来的。
OK,保存,F7重新编译一下完美运行:
- Gaclib 小白使用教程(1)
- Pycharm之小白使用教程
- 使用cocoa pods详解 小白教程
- github使用教程【适用小白】
- GreenDAO 学习笔记-小白教程(一)GreenDAO的简介和基本使用
- GreenDAO 学习笔记-小白教程(二)使用单例类来管理DaoSession
- SpringBoot小白教程 (一): 使用Maven新建SpringBoot工程
- SpringBoot小白教程 (一): 使用Maven新建SpringBoot工程
- 极路由+锐捷校园网小白使用教程
- Struts中使用displaytag简单小教程(转载)
- element 组件使用小教程集合(element1.3.6)
- Git小白教程1---本地仓库
- 小白github教程
- github小白教程
- 小波变换教程(1):基本原理
- Struts中使用displaytag简单小教程
- Struts中使用displaytag简单小教程
- Struts中使用displaytag简单小教程
- 多态新理解
- sdut 2137 数据结构实验之求二叉树后序遍历和层次遍历
- Spark性能调优——基础篇
- 09-面向对象(异常-finally代码块) 10-面向对象(异常-异常应用)1 2 3 4 11-面向对象(异常-异常注意事项)
- Merge k Sorted Lists
- Gaclib 小白使用教程(1)
- 前端基础学习(一)10.30--11.1
- C++ explict关键词详解
- 《智能时代》读书笔记
- SolrCloud 集群详解
- 【剑指offer】11-20题
- 小浮动
- 与IP地址相关的几个结构体
- Spring之IOC