【转】Qt调用dll中的效能函数
【转】Qt调用dll中的功能函数DLL 优点------------------------------------- 1、扩展了应用程序的特性; 2、
【转】Qt调用dll中的功能函数
DLL 优点
-------------------------------------
1、扩展了应用程序的特性;
2、可以用许多种编程语言来编写;
3、简化了软件项目的管理;
4、有助于节省内存;
5、有助于资源共享;
6、有助于应用程序的本地化;
7、有助于解决平台差异;
8、可以用于一些特殊的目的。windows使得某些特性只能为DLL所用。
?
转载:http://www.cnblogs.com/hicjiajia/archive/2010/08/27/1810239.html
?6?typedef?int?(*Fun)(int,int);?//定义函数指针,以备调用
?7?int?main(int?argc,char?**argv)
?8?{
?9?????QApplication?app(argc,argv);
10?????QLibrary?mylib("myDLL.dll"); ??//声明所用到的dll文件
11?????int?result;
12?????if?(mylib.load()) ? ? ? ? ? ? ?//判断是否正确加载
13?????{
14?????????QMessageBox::information(NULL,"OK","DLL?load?is?OK!");
15?????????Fun?open=(Fun)mylib.resolve("add"); ? ?//援引 add() 函数
16?????????if?(open) ? ? ? ? ? ? ? ? ?//是否成功连接上 add() 函数
17?????????{
18?????????????QMessageBox::information(NULL,"OK","Link?to?Function?is?OK!");
19?????????????result=open(5,6); ? ? ?//这里函数指针调用dll中的 add() 函数
20?????????????qDebug()<<result;
21?????????}
22?????????else
23?????????????QMessageBox::information(NULL,"NO","Linke?to?Function?is?not?OK!!!!");
24?????}
25?????else
26?????????QMessageBox::information(NULL,"NO","DLL?is?not?loaded!");
27 ? ? ? ? return 0; ?//加载失败则退出
28}
)
?下面是隐式调用的实例代码:
//由于是C版的dll文件,在C++中引入其头文件要加extern "C" {},注意
?4?{
?5?????????#include?"dll.h"
?6?}
?7?int?main(int?argv?,char?**argv)
?8?{
?9????????QApplication?app(argv,argv);
10??? ? ? HelloWordl();??????????//调用Win32?API?弹出helloworld对话框
11??? ? ? qDebug()<<add(5,6);????//?dll?中我自己写的一个加法函数
12??? ? ??return?0; ?//完成使命后,直接退出,不让它进入事件循环
13?}复制代码
还是隐式调用方便啊,直接就可以调用dll中的函数...
分类:?Qt