作者RexBT (Rex)
看板Programming
标题[问题] 请问如何进行程式间的沟通通知(callback)
时间Tue Jul 2 13:33:44 2013
想请问:
例如如果今天有两只应用程式A、B。
A、B都是并行处理的,都有一定的task。
但A可能需要知道一些硬体上的改变,例如按下某个按键、或者萤幕的翻转
当被通知按下某个按钮,或萤幕已经被翻转後,A就进行处理,不然A照default处理
由B去monitor这项硬体的改变。
目前大概知道的方式有:
MailSlot
Pipe
WM_COPYDATA
剪贴簿
socket等
但以上似乎都有些不太适合
有上网看过相关callbak的文章,但大多数提供的sample都是在同一只程式中跑
想知道callback function在两支不同的实作,不知道版上有无大大对callback比较熟悉的,可以为小弟质点迷津?
例如
A启动後,一直做print"."的动作,
B启动後开始监测有无按下键盘某键? 当按下某键後,B使用callbak function告诉A,
之後A便改print"*"
这样的话要怎麽在两只程式,不同的程式码做沟通呢?
需要写DLL吗?
不知道有没有先进有类似的sample code?
感激不尽 (希望以C++)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.251.182.145
1F:→ azureblaze:function不能跨process 118.168.84.108 07/02 13:40
2F:→ azureblaze:乖乖研究上面几种吧 118.168.84.108 07/02 13:41
您的意思是?callback function不能跨process吗
所以不能放在A、B两只程式里吧?连使用DLL也不行吗?
※ 编辑: RexBT 来自: 60.251.182.145 (07/02 13:47)
3F:推 hichcock:Message 可能比较适合你 60.248.105.226 07/02 13:50
Message试纸小弟指的那上面的几中方式吗?@@
※ 编辑: RexBT 来自: 60.251.182.145 (07/02 13:55)
4F:→ hichcock:是的...请 google 一下 windows message 60.248.105.226 07/02 14:03
这个我看过,可能我描述得不是很好
这篇知道callback不能跨process了
我看我在描述详细我想问的好了@@
※ 编辑: RexBT 来自: 60.251.182.145 (07/02 14:17)
5F:→ Blueshine:google 'inter process communicate' 220.136.38.219 07/02 14:57
6F:推 RouterHsieh:你这很明显的是需要IPC吧...XD 114.34.86.26 07/02 17:28
7F:推 drm343:看完我只想到 Erlang...XD 118.163.91.90 07/04 13:41
8F:→ kdjf:ptrace? (被打 140.112.245.32 07/05 07:51
9F:→ vber:shared memory 可能会好一点!! 175.180.87.203 07/06 18:50
10F:→ yauhh:当你认定callback就是windows messaging而 36.226.98.239 07/07 09:02
11F:→ yauhh:callback不能跨process,一个方案就被你丢掉. 36.226.98.239 07/07 09:03
12F:→ lulala453:named pipe 1.163.31.94 07/08 21:52