dll与exe之间的交互

插件一般是以dll的形式存在,而宿主则以exe的形式存在,他们之间必然要交互。

通常,交互方式可以是com,一种微软定义的复杂接口方式,不过支持的人挺多的,但是不利于跨平台使用,而且开发太复杂了。

另一方式就是使用消息系统,交互之间传递消息,还可以实现交互,就是处理起来用异步方式,稍微有点不自然,也不利于跨平台使用。

还有一种方式就是相互调用函数,exe调用dll的方式早在dll诞生的时候就已经存在,使用LoadLibrary,再用GetProcAddress取得函数地址,就可以调用了。

而dll并无直接调用exe的手段,不过exe可以传递过callback之类函数指针让dll来调用,这就形成了交互,并且在win32api中也是常用的手段,最典型的例子就是钩子函数。很多linux的动态库也是使用这种方式。并且可以不限制开发插件的编程语言,只要符合dll规定就行了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值