随想录(exe和dll的相互调用)

Posted 费晓行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随想录(exe和dll的相互调用)相关的知识,希望对你有一定的参考价值。

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

    有一种编程方法,就是需要在exe和dll之间进行相互调用。比如整个软件的功能都是比较简单的,大部分功能的实现依赖于插件的实现,那么这个时候就需要在exe和dll之间实现函数的相互调用。经过综合考虑,目前一般的处理方法是这样的,

1、exe-》dll

    exe调用dll其实比较简单的。因为在windows系统里面有默认的LoadLibrary函数,根据这个函数选择动态加载dll就可以了。比如有一个模块是a.dll,那么可以默认所有的初始化函数都是a_init,所有的结束函数都是a_close就可以了。

2、dll-》exe

    和linux不同,目前dll调用exe函数没有什么好办法。目前能想到的,就是在exe调用dll的时候,将自己的所有输出函数指针告诉dll,在调用dll中init函数的时候告诉dll模块。输出函数是一个指针集合,里面有普通函数指针,有static类函数指针。等dll拿到这些指针后,就可以在每次调用的时候,根据字符串,自己查找具体的函数指针,就可以了。

以上是关于随想录(exe和dll的相互调用)的主要内容,如果未能解决你的问题,请参考以下文章

卡住不活动的 msbuild.exe 进程、锁定 Stylecop.dll、Nuget AccessViolationException 和 CI 构建相互冲突的奥秘

如何查看exe或dll的依赖库dll

EXE执行文件如何调用DLL?

MSVC和MinGW组件dll相互调用

delphi 如何把其他exe文件加入dll中,并调用

获取调用我的 dll 的 exe 的名称