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

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