内存映射

摘要:
procedureTFmClient.CreateMemMapping();varszMappingName:string;BeginszMappingName:=“共享内存名称”//如果打开失败,请创建g_MemMappingHandle:=OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,PWideChar(szMappingName));如果(0=g_Me

procedure TFmClient.CreateMemMapping();
var
  szMappingName: string;
begin
  szMappingName := '
共享内存名字';
  //
如果打开失败,就创建
  g_MemMappingHandle := OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, PWideChar(szMappingName));
  if (0 = g_MemMappingHandle) then begin
    g_MemMappingHandle := CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, 1024, PWideChar(szMappingName));
  end;
  if (0 = g_MemMappingHandle) then begin
    DebuMsg('
创建共享内存失败');
    Exit;
  end;
  //
关联地址
  g_MemMapping := MapViewOfFile(g_MemMappingHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TMemMapping));
  if (not Assigned(g_MemMapping)) then begin
    DebuMsg('
映射共享内存失败');
    Exit;
  end;
  //
填充数据
  FillChar(g_MemMapping^, SizeOf(TMemMapping), #0);
end;


procedure TFmClient.DestroyMemMapping();
begin
  UnmapViewOfFile(g_MemMapping);
  CloseHandle(g_MemMappingHandle);
end;

免责声明:文章转载自《内存映射》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇学什么编程语言22个小故事下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

内存映射与DMA

1、mmap系统调用的实现过程,该系统调用直接将设备内存映射到用户进程的地址空间。 2、用户空间内存如何映射到内核中(get_user_pages)。 3、直接内存访问(DMA),他使得外设具有直接访问系统内存的能力。 linux中地址类型:用户虚拟地址、内核虚拟地址、内核逻辑地址(与物理地址是线性关系)、物理地址 用户空间与内核空间:内核将4G的虚...

(十)Linux 网络编程之ioctl函数

1.介绍 Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现. 2.相关结构体与相关函数 #include int ioctl(int d,int request,....

linux内核内存管理(zone_dma zone_normal zone_highmem)

Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。 Linux内核地址空间划分 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,...

Mybatis面试题

高强度训练第二十天总结:Mybatis面试题 什么是Mybatis?# Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 MyBatis...

码表的理解(ASCII,GBK,Unicode,UTF-8等)。

以下任何言论都完全是个人的理解,如有雷同纯属巧合,如有错误,希望大家多多指出,共同学习!谢谢! 笔者是一个理解能力偏慢、稍钻牛角尖的程序员,什么东西都要从最基础理解起,一步一步向上理解,因此讲述时也是这样,讲述的也比较通俗,都是按照个人的理解来讲述的,也请大家少安毋躁。 在计算机中无论任何数据的传输、存储、持久化,都是以二进制的形式体现的。 那么当我存...

转:Linux--进程间通信(信号量,共享内存)

源地址:http://www.cnblogs.com/forstudy/archive/2012/03/26/2413724.html Linux--进程间通信(信号量,共享内存)(转) 一. 信号量 l信号量: 解决进程之间的同步与互斥的IPC机制 多个进程同时运行,之间存在关联 •同步关系 •互斥关系 互斥与同步关系存在的根源在于临界资源 •临...