QT加载第三方动态链接库dll

2023-05-16

背景:写的程序需要读写excel文件,使用了开源的第三方工具xlnt,如果把xlnt的dll库加载到自己的QT项目中使用呢?

主要分为三步
1、在项目的pro文件中添加xlnt头文件目录
2、在项目的pro文件中添加xlnt的dll库
3、在项目的pro文件中拷贝dll库到运行环境下

样例:

includeFile = $$PWD/xlnt
INCLUDEPATH += $$replace(includeFile, /, \\)
message(Incluepath=$$INCLUDEPATH)

libPath = $$PWD/dll/libxlnt.dll
LIBS += $$replace(libPath, /, \\) #windows下路径是反斜杠,所以需要替换
message(libPath=$$LIBS)

# Copy dll file
win32:{
    dllSource = $$PWD/dll/libxlnt.dll
    dllSource = $$replace(dllSource, /, \\)

    dllTarget = $$OUT_PWD/
    dllTarget = $$replace(dllTarget, /, \\)
    Debug:{
        QMAKE_POST_LINK = xcopy $$dllSource $$dllTarget\debug /y
    }

    Release:{
        QMAKE_POST_LINK = xcopy $$dllSource $$dllTarget\release /y
    }
}
else: {
    dllSource = $$PWD/dll/libxlnt.dll
    dllTarget = $$OUT_PWD/

    Debug:{
        QMAKE_POST_LINK = xcopy $$dllSource $$dllTarget /y
    }

    Release:{
        QMAKE_POST_LINK = xcopy $$dllSource $$dllTarget /y
    }
}

PS:1、引入头文件和库文件路径后,然后在代码中#include “xlnt/xlnt.hpp”,即可使用xlnt的接口。

2、拷贝dll文件到运行环境的目的是不用每次删除工程重新构型时,还要手工拷贝dll库到运行目录下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT加载第三方动态链接库dll 的相关文章

随机推荐