冒险解谜游戏中文网 ChinaAVG
标题:
【汉化资料】window中进程间如何通信
[打印本页]
作者:
shane007
时间:
2009-6-27 21:40
标题:
【汉化资料】window中进程间如何通信
一个间接办法,你可用一个"共享名"申请一块共享内存块,进行读写:
9 L, ^1 @( [! P3 V. e
HANDLE GetShare(char * &ShareP,int size,char *ShareName)
' x& Y: f" a8 A+ Z* P
{
& P- |5 x) m6 M5 `, y
//ShareP申请的内存块地址,size字节数,ShareName共享名
% Z6 q, x5 j6 ^
HANDLE fh=CreateFileMapping((HANDLE)-1,0,PAGE_READWRITE,0,Size,ShareName);
6 K# s8 H- q6 R% g- z
ShareP=(char *)MapViewOfFile(fh,FILE_MAP_ALL_ACCESS,0,0,0);
! x0 b( Y2 v4 a* ~% V( O% U) {* {
if(GetLastError()!=ERROR_ALREADY_EXISTS)
- ^. A/ w! }$ }7 W4 |
ZeroMemory(ShareP,size); // 共享区初始化
4 W$ H2 |9 N* r; i7 X' c. J9 w: t
return(fh);
0 W0 u* }2 u- N+ s) E2 [& C
}
0 ~" N% v% t" Y- r$ q. R# @
char * ShareP=NULL;
! B+ x4 W I3 c, L# f
void test() // 申请一块128个字节的字符数组
# d J6 o, C% \) m) C7 V7 J
{
! `$ U$ L4 C) h% d4 \8 C
HANDLE fh=GetShare(ShareP,128,"ShareForMyProg");
* \: ~4 l! R0 w
for (int i=0;i<128;i++)
; T: H, k+ |1 c1 b$ N' z) i5 p4 N
ShareP
=i;
7 t0 i' g( G+ e% u8 H7 S
CloseHandle(fh);
' h7 h3 {# l2 {! f: W+ _
}
/ Y% K+ p3 k9 e+ G
如果你的多个程序之间或同一个程序多次同时运行,也可借助这个办法进变量通讯;你的若干个进程可借助于这种办法互相传递数据。
作者:
firendless
时间:
2009-7-9 11:21
DDE的也可以...或者配置共享...
作者:
shane007
时间:
2009-7-9 11:41
引用第1楼firendless于2009-07-09 11:21发表的 :
A4 k5 ]: L0 t2 O2 L8 R2 e
DDE的也可以...或者配置共享...
% u5 j: i3 S9 e: k9 s4 r
DDE好像是挺老的技术了,win95时代的吧。
作者:
firendless
时间:
2009-7-9 11:48
嗯,但是怎么说呢,管道还是最保险和最安全的方法了吧.
作者:
shane007
时间:
2009-7-9 11:55
有时间请多来冒泡。
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2