如何在程序中用显式加载的方式使用DLL中的导出类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在程序中用显式加载的方式使用DLL中的导出类相关的知识,希望对你有一定的参考价值。

参考技术A 这个好像不行啊,最少你需要知道类或函数的声明啊。
无论dll中导出函数或是类。
也无论你是使用隐式调用或是显示调用dll中的函数,你都需要先知道函数声明,否则一切都是无用的。只不过是函数声明由dll工程移到了调用这个dll的工程。
你说对不对。

如果要显示调用dll中导出的类,可以通过如下方法实现。
DLL中:
class A//此类不用导出。

...
;
A* create_instance()//应该定义为导出函数。

return new A();


//调用DLL的工程
A* (*ptrAInst)();
loadlibrary(...);//具体函数参见不同操作系统的编程手册
ptrAInst = getprocaddress(“create_instance”);//具体函数参见不同操作系统的编程手册
...//处理某些工作
freelibrary(...);//工作处理完后释放,具体函数参见不同操作系统的编程手册本回答被提问者和网友采纳

以上是关于如何在程序中用显式加载的方式使用DLL中的导出类的主要内容,如果未能解决你的问题,请参考以下文章

QT 调用 DLL 方法(三种方法)

dll加载遇到的问题

动态链接库的加载

调用另一个进程加载的 DLL 中的函数

GetProcAddress与__declspec(dllimport)

为啥有的dll里没有导出函数?