#ifndef SHAREDLIB_H #define SHAREDLIB_H #include "sharedlib_global.h" SHAREDLIBSHARED_EXPORT int subtract(int x, int y); class SHAREDLIBSHARED_EXPORT SharedLib public: SharedLib(); int add(int x, int y); }; #endif // SHAREDLIB_H sharedlib.cpp 内容如下: #include "sharedlib.h" i...
extern 全局声明不能在类内部使用 extern "C" Q_DECL_EXPORT 生成一个连接外部的函数链接 Q_DECL_EXPORT和Q_DECL_IMPORT程序会根据调用情况,选择其中一个来替代。 sharedlib_implicit.h 修改sharedlib_implicit.cpp 修改staticclass.h,创建一个函数和虚函数,用于测试,再创建一个外部链接函数,用于调用定时器函数 st...
新建文件或项目->选择 Library 和 c++ 库->选择共享库->下一步(工程名为 sharedlib) 生成的目录结构如图: 修改sharedlib.h 中的代码: // sharedlib.h#ifndef SHAREDLIB_H #define SHAREDLIB_H#include "sharedlib_global.h" class SHAREDLIBSHARED_EXPORT Sharedlib// 导出类, 客户端可直接加载{ public: ...
MYSAHREDLIBSHARED_EXPORT符号用于替换Qt的Q_DECL_EXPORT宏或Q_DECL_IMPORT宏(一个共享库导出给用户使用的类、符号、函数等都需要用宏Q_DECL_EXPORT来定义导出,一个使用共享库的应用程序都需要通过Q_DECL_IMPORT导入共享库里的可用对象) #include <QtCore/qglobal.h> #if defined(MYSAHREDLIB_LIBRARY) # define...
这里什么也没做只是把SLDSHARED_EXPORT加上了 好了就这样,我们构建一下就会在MyDebug文件夹里生成我们的dll 2.怎么使用动态链接库 新建一个Qt WidgetsApplication项目 在.pro文件里修改和上边一样加上 DESTDIR =..\MyDebug 再点击项目把shadow build 去掉 ...
classLIBSHARED_EXPORT MainWindow :publicQMainWindow { public: MainWindow(QWidget *parent = 0); }; #endif // LIB_H 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. lib.cpp #include "lib.h" MainWindow::MainWindow(QWidget *parent) ...
#ifndef LOGGER_H#define LOGGER_H#include <QObject>#include "logger_global.h"enum business_state{start,running,finsish};class QJsonObject;class LogQt;/*** @class Logger logger.h* @brief 日志客户端/服务端* @note 根据日志配置文件中配置启动为客户端或服务端*/class LOGGERSHARED_EXPORT MyLogger...
头文件:在方法声明时,前面加上__declspec(dllimport),也可用#define定义,看代码://为了和将来用到的程序中公用一个头文件,创建dll时用到的是__declspec(dllexport),而使用dll时用到__declspec(dllimport),完全可以各自写一下#defineTESTDLLSHARED_EXPORT__declspec(dllexport)#ifdefTESTDLLSHARED_EXPORT#else#define...
# define WIDGETLIBSHARED_EXPORT Q_DECL_EXPORT #else # define WIDGETLIBSHARED_EXPORT Q_DECL_IMPORT #endif #endif // WIDGETLIB_GLOBAL_H 之后,点击下方构建按钮即可生成对应的dll文件 不过在此之前,我们还需要在界面上添加以下组件,以验证封装成DLL之后库的可用性。
log4qt,是大名鼎鼎的阿帕奇的java日志库log4j的qt移植版。本是挺常用的开源库,然而在使用过程中发现了内存泄露的坑。为了验证下,这里单独写了个测试demo,并使用qtcreator集成的hoeb内存泄露检测工具分析下。 测试用例很简单,就是一个MainWindow界面上放置两个按钮。点下按钮分别启动一个线程,间隔10ms不断的向日志文...