动态链接库回调主程序内部函数的问题

hupo1982 2007-05-25 02:18:00
一个主程序动态加载了一个dll,现在我想让这个动态链接库能够使用主程序里面的某一个函数,想请教一下除了使用传递函数指针之外还有什么其他的方法吗?如果我想调用多个主程序中的函数用函数指针是不是比较麻烦?有没有什么简单的方法?谢谢!
...全文
418 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
NeuNeo 2007-05-28
  • 打赏
  • 举报
回复
to akirya:

哦对哦,呵呵,习惯了,不好意思
  • 打赏
  • 举报
回复
NeuNeo()
接口不一定是COM相关的东西

只要有个带虚函数的基类就可以了,
Vitin 2007-05-25
  • 打赏
  • 举报
回复
对于回调多个函数的情况,不需要传递多个函数指针,一个就可以了,这个被传递的函数可以包装你所需要的所有回调函数的功能,增加一个参数用于区别不同的功能。因为所有的函数都可以用一个函数来代替,只要你的参数足够就行了。当然这种可扩展性不强,有新的参数就不行了。
另一种方法是传递一个函数指针,而这个函数的作用就是返回你需要的其他函数指针(以一个id作为参数)。对于不同原型的函数,可以强制转换。
spofmy 2007-05-25
  • 打赏
  • 举报
回复
函数指针很方便的
NeuNeo 2007-05-25
  • 打赏
  • 举报
回复
akirya说的很对,传入接口就可以了,不过在dll中也需要import定义了该接口的tlb
iambic 2007-05-25
  • 打赏
  • 举报
回复
函数指针算是最简单最直接的方法了,就是声明的时候有点麻烦而已。
sinovoice 2007-05-25
  • 打赏
  • 举报
回复
其实你也差不多明白怎么做了,应该多去try了,其他再问也就是这么一回事
hupo1982 2007-05-25
  • 打赏
  • 举报
回复
谢谢大家的指点,函数指针我倒是会用,只是觉得如果要回调多个函数的话用函数指针有些麻烦,不知有没有其他方法,我再看看吧
庄鱼 2007-05-25
  • 打赏
  • 举报
回复
传递接口指针和传递函数指针有啥不同?楼主怎么弄都是函数指针,何必那么复杂呢?
jixingzhong 2007-05-25
  • 打赏
  • 举报
回复
参看:
http://blog.csdn.net/jeffreyren/archive/2001/02/10/6393.aspx

就是 根据调用函数方式,
声明相应的函数指针,
然后利用指针调用 ...
jixingzhong 2007-05-25
  • 打赏
  • 举报
回复
函数指针方式吧, 非常简单
  • 打赏
  • 举报
回复
听人讲过什么虚函数之类的,说可以做,不知哪位大侠做过,告诉我一个确定的能不能做的答复就行,谢谢
?????
仔细看我第一个回复,你要看懂了就知道我说的就是虚函数的方法.
hupo1982 2007-05-25
  • 打赏
  • 举报
回复
听人讲过什么虚函数之类的,说可以做,不知哪位大侠做过,告诉我一个确定的能不能做的答复就行,谢谢
星羽 2007-05-25
  • 打赏
  • 举报
回复
或者使用消息机制咯

taodm 2007-05-25
  • 打赏
  • 举报
回复
老老实实用函数指针吧。这个已经很简单了。
星羽 2007-05-25
  • 打赏
  • 举报
回复
函数指针是比较好的方法了拉
  • 打赏
  • 举报
回复
就是使用函数指针.
当然你可以弄个接口然后派生出来一个对象.调用之前现将这个接口的指针给dll

dll使用这个接口,就可以回调了

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧