Qt解决方案中添加动态链接库项目

来源:互联网 发布:防伪软件 编辑:程序博客网 时间:2024/05/05 13:59

动态链接的好处: 生成执行文件小,修改程序后重新编译部分少。
如何添加动态链接库项目:
解决方案->添加新建项目->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 相应的文件。