QLibrary 动态加载外部库文件
来源:互联网 发布:售电软件是什么 编辑:程序博客网 时间:2024/05/21 09:26
/*转载请注明出处,谢谢*/
背景:想搭一个软件系统,包含一个主模块,一堆子模块(用于扩展功能)。主模块是一个可执行程序,子模块为动态库,可以加载在主模块中。
问题:每添加一个扩展功能就要修改一下主模块的源程序,在其中添加头文件,lib文件,然后重新编译。很是麻烦。
目标:主模块读一个配置文件,根据其中的内容,动态加载子模块的DLL,以实现扩展功能灵活配置,而不需要每次都修改和重新编译主模块。
下面是个例子:
子模块代码:
extern "C" __declspec(dllexport) int print2(int a, int b);
int print2(int a, int b){printf("VideoDecoderDLL printint!\n");return (a+b);}
主模块代码:
#include <QLibrary>void Shell::Test(){//m_vd->print();int *out=0;typedef int (*myfun)(int, int); // 定义导出函数类型 QLibrary hdll( "I:/testDll/shell/VideoDecoderD.dll" ); //加载dll,当前目录 if(hdll.load()) { myfun fun1 = (myfun)hdll.resolve("print2"); //用resolve来解析fun1函数 if ( fun1 ) //解析成功则进行运算并提示相关信息 { printf("解析成功\n");printf("%d\n",fun1(2,3)); } else{printf("解析失败\n");}} }
目前还没解决如何加载一个类,有知道办法的朋友欢迎留言。
- QLibrary 动态加载外部库文件
- QLibrary 动态加载外部库文件
- 使用QLibrary加载动态库
- 使用QLibrary加载动态库
- QLibrary Class Reference(qt加载外部库)
- QLibrary Class Reference(qt加载外部库)
- QLibrary 动态加载dll
- 详解 Qt 下 QLibrary 动态加载 dll
- Qt下QLibrary动态加载dll
- 详解 Qt 下 QLibrary 动态加载 dll
- Qt 下 QLibrary 动态加载 dll
- 详解 Qt 下 QLibrary 动态加载 dll (Fortran)
- 动态加载外部css或js文件
- js加载器动态加载外部Javascript文件
- 使用js加载器动态加载外部Javascript文件
- 使用js加载器动态加载外部Javascript文件
- 使用js加载器动态加载外部Javascript文件
- QLibrary加载so的注意事项
- 向其他进程注入代码的三种方法
- 喝可乐问题,2个空瓶换一瓶可乐
- 云管理员(Cloud Admin)
- Application.EnableVisualStyles()的作用
- oracle 中的 decode()、nvl()、sign()函数详解
- QLibrary 动态加载外部库文件
- .net中如何获取浏览器类型
- 转 对象管理组织(wiki)
- cvCanny函数说明
- Eclipse Helios 推荐安装的SVN版本
- java 乱码解决办法
- 英语练习116 Confucius
- Datastage入门+实例(易理解)
- JNI(Java Native Interface)在多线程中的运用