//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 明白了嘛?欢迎分享,转载请注明来源:内存溢出
评论列表(0条)