首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > 用内存映射文件在两个程序中共享数据
【标  题】:用内存映射文件在两个程序中共享数据
【关键字】:
【来  源】:http://www.cublog.cn/u/14014/showart.php?id=255786

用内存映射文件在两个程序中共享数据

其它地方看到的,我试验过了,OK。

  private
    hMapFile: THandle;
    MapFilePointer: Pointer;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
  hMapFile := CreateFileMapping (
    $FFFFFFFF, // 特殊内存映射句柄
    nil, page_ReadWrite, 0,10000,
    'DdhDemoMappedFile'); // 文件名
  if hMapFile <> 0 then
    MapFilePointer := MapViewOfFile (
      hMapFile, // 上面映象文件的句柄
      File_Map_All_Access,
      0, 0, 0) // 访问整个映象文件
  else
    ShowMessage ('hMapFile = 0');
  if MapFilePointer = nil then
    ShowMessage ('MapFilePointer = nil');
end;

procedure TForm1.BtnWriteClick(Sender: TObject);
begin
  StrCopy (PChar (MapFilePointer),
    PChar (EditWrite.Text));//把内容写入共享内存
end;

procedure TForm1.BtnReadClick(Sender: TObject);
var
  S: string;
begin
  S := PChar (MapFilePointer);//从共享内存读出内容
  EditRead.Text := S;
end;
用这种方法,不但可以在不同的程序之间共享数据,还可以
在同一程序的不同实例间共享数据。为了及时通知其它进程
共享数据的变化,可以自定义一条用户消息,通过发消息来
实现。
__stdcall 解释:【上一篇】
[转帖]DELPHI操作EXCEL参考:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 希望能为OpenBSD筹到一些款
  • Effective C++之32
  • WINDOWS标准界面元素--按钮(二)
  • HP OVDP install
  • 关于Unix下Oracle客户端汉字显示乱码的解决
  • 在XP下安装DNS的方法
  • 今天开张!写我的读书笔记关于可变参数
  • SOA 思想 架构
  • 关于如何动态地在同一页面实现两个 姓名:
    邮件:
    随机码*
    评论*
          
  • |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.