动态链接的好处: 生成执行文件小,修改程序后重新编译部分少。
如何添加动态链接库项目:
解决方案->添加新建项目->qt projects -> qt library (输入项目名为abc),然后生成一个新项目,包含abc.h abc.cpp abc_global.h 三个文件,打开abc.h可以看到class ABC_EXPORT abc 的定义(在abc_global.h中有#define ABC_EXPORT Q_DECL_EXPORT ,再次跟踪,有define Q_DECL_EXPORT __declspec(dllexport) ,^_^,找到目标了吧),再在abc.h删除类abc,加入
extern "C"
{
STATIC_EXPORT WndStatic* NewForm(); //NewForm为导出函数
}
在abc.cpp中定义NewForm函数。
完成之后在原来的项目中调用QLibrary::resolve ("abc", " NewForm") ,Loads the library fileName and returns the address of the exported symbol symbol.返回类 NewForm的指针。
typedef WndStatic* (*FUNC)();
FUNC func;
func = (FUNC)QLibrary::resolve("abc", "NewForm");
if (func)
{}
最后注意要在原来的项目中->属性->配置属性->c/c++->常规,附加包含目录中添加新项目所在的目录 ,然后在原项目中#include 相应的文件。
Qt解决方案中添加动态链接库项目
最新推荐文章于 2023-09-18 17:42:56 发布