有没有办法实现进程间的回调函数。

myusst 2003-10-19 01:45:48
如果我有一个进程A,一个进程B,一个DLL,我把进程A中要回调的函数MyFunction(如:0x41000000)地址传递到DLL中,当DLL判断到B进程中某一事件发生,就回调A的回调函数去处理。但是windows进程之间是相互独立的,可以有相同的虚拟地址,所以这时DLL根据传递进来的函数地址去回调,但是这时他会调的是B进程0x4100000的函数,因为B进程在这个地址上根本不存在MyFunction函数,所以系统就报错了。

有谁能知道怎么进行进程间的回调吗?
...全文
787 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohedou 2003-11-03
  • 打赏
  • 举报
回复
两个进程之间的通讯问题!你的三个文件:A、B、DLL可以这样组织:用COM的事件与回调机制(连接点)。建议你看看comcamp.126.com这个网站!
xiaohedou 2003-11-03
  • 打赏
  • 举报
回复
两个进程之间的通讯按照《核心编程》里讲的建议使用文件映射!还可以用pipe/DDE/socket等!
aachenG 2003-11-02
  • 打赏
  • 举报
回复
按你的描述,你的那个dll是进程B调用的,那么,即使它"回调"进程A的函数,代码也是在B的线程里运行的,对A没有丝毫影响!这样,你为什么要回调?把函数代码拷过来好了!
如果要同时用到A和B的数据,归根结底还是进程间通讯问题!
NopnoP 2003-11-02
  • 打赏
  • 举报
回复
如果你能处理好这个回调函数的重定位问题的话,你可以这样做:
0.在进程A和进程B之间建立一个共享内存对象;
1.把需要回调的函数复制到这个共享内存中;
myusst 2003-10-23
  • 打赏
  • 举报
回复
第几章啊,第几页啊?
lzzqqq 2003-10-23
  • 打赏
  • 举报
回复
你的意思是说进程B中发生某事的时候去调进程A中的处理过程。
在Window核心编程中有这样的内容,介绍怎么打破进程边界的。
seacode 2003-10-23
  • 打赏
  • 举报
回复
回調嘛,寫成驅動吧
expedition 2003-10-22
  • 打赏
  • 举报
回复
不用使用DLL作中间传递。OS系统支持进程间的调用。在COM规范中也有降到。你可以看看MSDN中关于RPC(Remote Procedure Call)文章。
flyelf 2003-10-21
  • 打赏
  • 举报
回复
gz
myusst 2003-10-21
  • 打赏
  • 举报
回复
哎~~~~~~~~
footway 2003-10-20
  • 打赏
  • 举报
回复
实现不了。
myusst 2003-10-20
  • 打赏
  • 举报
回复
没人知道啊?:(
myusst 2003-10-19
  • 打赏
  • 举报
回复
用消息谁都会啊,问的就是怎么用回调函数啦!
MilitaryMiniatures 2003-10-19
  • 打赏
  • 举报
回复
建议:使用消息来实现不同进程之间的通信。
myusst 2003-10-19
  • 打赏
  • 举报
回复
写到DLL里面还叫回调函数吗!
回调函数就是要在不同的进程里,实现不同的功能啊
SlayerCarrier 2003-10-19
  • 打赏
  • 举报
回复
你把MyFunction写到DLL里面去啊。

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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