社区
C++ 语言
帖子详情
动态链接库回调主程序内部函数的问题
hupo1982
2007-05-25 02:18:00
一个主程序动态加载了一个dll,现在我想让这个动态链接库能够使用主程序里面的某一个函数,想请教一下除了使用传递函数指针之外还有什么其他的方法吗?如果我想调用多个主程序中的函数用函数指针是不是比较麻烦?有没有什么简单的方法?谢谢!
...全文
418
17
打赏
收藏
动态链接库回调主程序内部函数的问题
一个主程序动态加载了一个dll,现在我想让这个动态链接库能够使用主程序里面的某一个函数,想请教一下除了使用传递函数指针之外还有什么其他的方法吗?如果我想调用多个主程序中的函数用函数指针是不是比较麻烦?有没有什么简单的方法?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NeuNeo
2007-05-28
打赏
举报
回复
to akirya:
哦对哦,呵呵,习惯了,不好意思
珍惜生命远离CPP
2007-05-26
打赏
举报
回复
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
打赏
举报
回复
函数指针方式吧, 非常简单
珍惜生命远离CPP
2007-05-25
打赏
举报
回复
听人讲过什么虚函数之类的,说可以做,不知哪位大侠做过,告诉我一个确定的能不能做的答复就行,谢谢
?????
仔细看我第一个回复,你要看懂了就知道我说的就是虚函数的方法.
hupo1982
2007-05-25
打赏
举报
回复
听人讲过什么虚函数之类的,说可以做,不知哪位大侠做过,告诉我一个确定的能不能做的答复就行,谢谢
星羽
2007-05-25
打赏
举报
回复
或者使用消息机制咯
taodm
2007-05-25
打赏
举报
回复
老老实实用函数指针吧。这个已经很简单了。
星羽
2007-05-25
打赏
举报
回复
函数指针是比较好的方法了拉
珍惜生命远离CPP
2007-05-25
打赏
举报
回复
就是使用函数指针.
当然你可以弄个接口然后派生出来一个对象.调用之前现将这个接口的指针给dll
dll使用这个接口,就可以回调了
2.c++
动态链接库
实现
回调
c++
动态链接库
实现
回调
创建
动态链接库
dll vs新建工程,选择
动态链接库
(dll); 工程创建后会自动生成dllmain.cpp,以及DllMain
函数
,是dll的入口
函数
,具体功能可以百度查看,一般用不到,可以直接将dllmain.cpp删除,或者放着不管。 新建类Handle,代码如下,定义一个HandleCall
回调
处理
函数
,用来处理
主程序
(startcall)传入的参数和
回调
函数
,通过__declspec(dllexport)导出整个Handle类,也可以单独导出某个
函数
,主程
linux下so动态库调用
主程序
函数
linux下动态库 今天无意间发现在linux下share object(dynamic library)中的
函数
竟然可以不通过
回调
的方式直接访问
主程序
中的
函数
,瞬间颠覆以前对于动态库的观念. 1、如代码所示libhi.so中有一个
函数
hello,
主程序
main中有一个
函数
hi_out, 那么在main中调用libhi.so中的hello时,hello会自动找到main程序中的hi_output
函数
地址, 然后进行调用. =================hi.c 编译为 libhi.so=...
VC中制作DLL
动态链接库
函数
回调
MFC dll
新建win32的dll或者MFC的DLL win32的DLL可手动添加一个.h文件,并且和对应的cpp文件对应,如下demo // DemoDll2.cpp : 定义 DLL 应用程序的导出
函数
。 // #include "stdafx.h" #include "DemoDll2.h" #include "stdio.h" #define MYLIBAPI extern "C" _
DLL中的
回调
函数
实现
DLL中的
回调
函数
实现DLL文件中存放的是各类程序的
函数
实现过程,当程序需要调用
函数
时需要先载入DLL,然后取得
函数
地址,最后进行调用。但是有时候我们需要DLL和程序进行通信,将应用程序的某些功能提供给DLL使用,这时就可以使用
回调
函数
。 比如应用程序A调用
动态链接库
D,同时需要将D中的一些日志信息反馈给A进行处理。这时可以在A中设置写日志的
回调
函数
提供给DLL。 一、调用程序中操作 应用程序提
回调
函数
详解
http://blog.csdn.net/tingsking18/article/details/1509224 一,
回调
函数
我们经常在C++设计时通过使用
回调
函数
可以使有些应用(如定时器事件
回调
处理、用
回调
函数
记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它
函数
(比如钩子
函数
)有何不同呢?使用
回调
函数
实际上就是在调用某个
函数
(通常是API
函数
)时,将自...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章