• Qt Library 链接库


    官方教程:http://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application

    http://qimo601.iteye.com/blog/1397936

    在VS2013  QT 中如何创建和引用静态和动态链接库

    一、静态库的创建和调用最为简单

    1.生成两个文件 qtstaticlib.h qtstaticlib.cpp 直接在函数里面写函数即可

    #ifndef QTSTATICLIB_H
    #define QTSTATICLIB_H
    class QtStaticLib
    {
    public:
        QtStaticLib();
        ~QtStaticLib();
        int add(int a, int b);
    private:
    
    };
    extern "C" int subtract(int a, int b);   //普通函数的调用
    
    #endif // QTSTATICLIB_H
    #include "qtstaticlib.h"
    
    QtStaticLib::QtStaticLib()
    {
    
    }
    
    QtStaticLib::~QtStaticLib()
    {
    
    }
    int QtStaticLib::add(int a, int b){
        return a + b;
    }
    
    int subtract(int a, int b){
        return a - b;
    }

    2.编译生成  QtStaticLib.lib 文件

    3.调用 QtStaticLib.lib文件 需要要  qtstaticlib.h 和QtStaticLib.lib 即可

      复制一份 qtstaticlib.h 到要用用的工程的目录下并添加引用,

      qtstaticlib.lib 复制到工程目录下,两种方式添加

        【1.    #pragma comment(lib, "D:/WorkProgram/ComputerManager/x64/Debug/QtStaticLib.lib")  2. 添加库目录,添加库文件的方法】

    4.直接使用即可

    二、动态链接库的创建和引用

      

      1. stdafx.h 和 stdafx.cpp 没有内容,把qtdlllib_global.h中的内容放到了qtdlllib.h 中了  

        

      2.编写功能函数

       

    #ifndef QTDLLLIB_H
    #define QTDLLLIB_H
    
    #include <QtCore/qglobal.h>
    #ifdef QTDLLLIB_LIB
    # define QTDLLLIB_EXPORT Q_DECL_EXPORT
    #else
    # define QTDLLLIB_EXPORT Q_DECL_IMPORT
    #endif
    
    class QTDLLLIB_EXPORT QtDllLib
    {
    public:
        QtDllLib();
        ~QtDllLib();
        int add(int a, int b);
    
    private:
    
    };
    extern "C" QTDLLLIB_EXPORT int subtract(int a, int b);
    
    #endif // QTDLLLIB_H
    #include "qtdlllib.h"
    
    QtDllLib::QtDllLib()
    {
    
    }
    
    QtDllLib::~QtDllLib()
    {
    
    }
    int QtDllLib::add(int a,int b)
    {
        return a + b;
    }
    int subtract(int a, int b){
        return a - b;
    }

    3.编译  预编译头相关错误,就是删除stdafx.h造成的解决方法

    4.编译生成 QtDllLib.dll 和 QtDllLib.lib文件  

    5 应用动态链接库 分为隐式引用和显示引用

      隐式引用,需要文件QtDllLib.dll 和 QtDllLib.lib和 QtDllLib.h (方法和静态链接库相同)

      显示引用:1.引用函数 需要文件QtDllLib.dll 2.引用类 需要文件QtDllLib.dll 和 QtDllLib.h 

      引用函数:

      

      引用类:需要在dll类中写一个函数返回  类的实例指针  这样就像调用函数一样  返回一个类的实例指针 来使用

       就是在编写dll的时候添加如下,然后就像调用函数一样,有 返回值 QtDLlLib 是自定义的 所以需要引用头文件。

    QtDllLIb* getQtDllLIb()  
    {  
        return new QtDllLIb();  
    }  
  • 相关阅读:
    分治
    递归
    java三大特性之封装
    Java基础知识
    puk2367 拓扑排序
    puk1251 最小生成树
    puk1521 赫夫曼树编码
    DOSbox简单运行操作
    Mybatis初学经验----------------(2)
    mysql存储引擎MyISAM和InnoDB的区别
  • 原文地址:https://www.cnblogs.com/lwngreat/p/5640233.html
Copyright © 2020-2023  润新知