8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
之前因为一些原因,需要将一些widget派生类封装成dll,给其它项目使用。研究了一下,首先,该widget派生类需要与使用类尽量没有关联。(当明有一个共用类,保存各种全局变量,里面有一个变量,与语言选择相关的,共享类也包含了该头文档,可是并没有获取到全局变量的值)
一、新建工程
1. 新建LibraryC++工程
2.选择共享库,设定路径
3.选择对应的模块,也可以在pro里面增加
二、工程介绍
1.本工程没有main函数,可以归类为库。
2.pro文档介绍
需要debug版本的,手动增加1
2
3
4
5CONFIG+=debug_and_release
CONFIG(debug,debug|release){
unix:TARGET=$$join(TARGET,,,_debug)
else:TARGET=$$join(TARGET,,,d)
}
3.*_global.h介绍
下图1为_global.h的内容,下图2为实际Q_DECL_EXPORT和Q_DECL_IMPORT**的宏定义
4.主类或函数
定义前加上PUBLICSHARED_EXPORT即可,然后做自己想做的控件。1
2
3
4
5
6
7PUBLICSHARED_EXPORT int (int x,int y);
类定义
class Public
{
public:
Public();
};
5.编译完成
在windows平台下,会成生一个.a文档和一个.dll(我使用的是Mingw5.5.1,MSVC会生成.lib和.dll)
三、库的使用
1.新建一个Application项目
右击工程,添加库,选择内部库,在库文档中选择.a或者.lib。看图说话- -
2. pro文档会发生变化
INCLUDEPATH表示头文档的路径
DEPENDPATH表示编译时依赖文档的路径
最好把 .h *_global.h .a .dll 放到与该工程下(该方法发布的时候需要把dll一起发布)
3.使用
包含.h头文档即可以正常使用函数或者类。
4.注意
有一个全局变量Language表示当前接口显示的语言,由进程开启后第一时间读取配置文档,供全局使用。使用了上面的方法,生成共享库的时候在头文档也包含了该类。结果在使用的时候经调试发现,两者的Language为两个互不关联的变量。即数据不共享,通过信号槽或者函数调用可以达到共享。