Qt怎么隐式加载VC动态库

Qt怎么隐式加载VC动态库,第1张

//你先要知道DLL里的函数头原型如下面函数

//DLL函数实现原型

extern "C" __declspec(dllexport) int __stdcall Add_new(int a,int b)

{

return a+b

}

//假设编译生成动态文件dllTest.dll

//以下是程序中实现动态调用DLL动态库实现方法

#include <stdio.h>

#include <windows.h>

typedef int (* lpAddFun)(int ,int)//定义一个与Add_new函数接受参数类型和返回值均相同的函数指针类型

int main()

{

HINSTANCE hDll//句柄

lpAddFun addFun//函数指针

hDll=LoadLibrary("dllTest.dll")//动态加载DLL模块句柄

if(hDll)

{

addFun=(lpAddFun) GetProcAddress(hDll,"Add_new")//得到所加载DLL模块中函数的地址

if(addFun)

{

int result=addFun(2,3)

printf("%d",result)

}

FreeLibrary(hDll)//释放已经加载的DLL模块

}

return 0

}

toolc: 准备用QT写一个界面,用界面读取文本数据,具体计算的方法用C++编好的动态库中的函数执行,最后把计算的结果显示在界面上,请问怎么调用?最好有代码或者例子说明。/home/lenovo/qtpro/dll_test-build-desktop/dll_test: error while loading shared libraries: libTax.so.1: cannot open shared object file: No such file or directory qtcreator生成的动态链接库文件和软链接都在/home/lenovo/qtpro/Tax-build-desktop/里面,dll_test的最后unix:!macx:!symbian: LIBS += -L$$PWD/../Tax-build-desktop/ -lTaxINCLUDEPATH += $$PWD/../Tax-build-desktopDEPENDPATH += $$PWD/../Tax-build-desktop之前没有这一段,链接时报错,加上之后就变成上面提到的错误了 ------------------------------------------ XChinux:$export LD_LIBRARY_PATH=/your_shrared_lib_path:$LD_LIBRARY_PATH$/home/lenovo/qtpro/dll_test-build-desktop/dll_test 明白了嘛?


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11766165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存