欢迎来到天天文库
浏览记录
ID:39419055
大小:197.00 KB
页数:32页
时间:2019-07-02
《delphi进程间通讯例子,自定义消息传递或共享内存区》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、CSDN社区 > Delphi > WindowsSDK/API求delphi进程间通讯例子,自定义消息传递或共享内存区!楼主skphoebe(小鲨鱼)2005-09-2014:00:08在Delphi/WindowsSDK/API提问谢谢,摆脱那位大哥供小弟学习下!问题点数:50、回复次数:13Top1楼abc3000(想想就烦)回复于2005-09-2014:26:34得分0以下例子是共享内存 实现进程间通讯,没有大的问题,就是最后个字符会被吃掉 Top2楼abc3000(想想就烦)回复于2005-09-2014:27:18得分0unit File
2、Map; interface uses Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,StdCtrls,Dialogs; type TFileMap=class(TComponent) private FMapHandle:THandle; //内存映射文件句柄 FMutexHandle:THandle; //互斥句柄 FMapName:string; //内存映射对象
3、 FSynchMessage:string; //同步消息 FMapStrings:TStringList; //存储映射文件信息 FSize:DWord; //映射文件大小 FMessageID:DWord; //注册的消息号 FMapPointer:PChar; //映射文件的数据区指针 FLocked:Boolean; //锁定 FIsMapOpen:Boolean;
4、 //文件是否打开 FExistsAlready:Boolean; //是否已经建立过映射文件 FReading:Boolean; //是否正在读取内存文件数据 FAutoSynch:Boolean; //是否同步 FOnChange:TNotifyEvent; //当内存数据区内容改变时 FFormHandle:Hwnd; //存储本窗口的窗口句柄 FPNewWndHandler:Pointer; FPOldWndH
5、andler:Pointer; procedure SetMapName(Value:string); procedure SetMapStrings(Value:TStringList); procedure SetSize(Value:DWord); procedure SetAutoSynch(Value:Boolean); procedure EnterCriticalSection; procedure LeaveCriticalSection; procedure MapStr
6、ingsChange(Sender:TObject); procedure NewWndProc(var FMessage:TMessage); public constructor Create(AOwner:TComponent);override; destructor Destroy;override; procedure OpenMap; procedure CloseMap; procedure ReadMap; procedure WriteMap; prop
7、erty ExistsAlready:Boolean read FExistsAlready; property IsMapOpen:Boolean read FIsMapOpen; published property MaxSize:DWord read FSize write SetSize; property AutoSynchronize:Boolean read FAutoSynch write SetAutoSynch; property MapName:string read FMapName w
8、rite SetMapName; prop
此文档下载收益归作者所有