社区
Windows SDK/API
帖子详情
共享内存
gyj_china
2007-03-01 02:46:03
有谁有没有关于一个内存共享的例子参考一下!谢谢CreateFileMapping/MapViewOfFile/OpenFileMapping
...全文
394
5
打赏
收藏
共享内存
有谁有没有关于一个内存共享的例子参考一下!谢谢CreateFileMapping/MapViewOfFile/OpenFileMapping
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
i_love_pc
2007-05-17
打赏
举报
回复
Mark
cczlp
2007-05-17
打赏
举报
回复
//--季老大的代码--------------------------------------------------------------------
class TSharedMem
{
private:
bool FCreated;
BYTE *FFileView;
HANDLE FHandle;
public:
TSharedMem(const char* Name, int Size);
~TSharedMem();
__property BYTE* Buffer = {read=FFileView};
__property bool Created = {read=FCreated};
};
TSharedMem::TSharedMem(const char* Name, int Size)
{
FHandle = CreateFileMapping((HANDLE)0xFFFFFFFF,
NULL, PAGE_READWRITE, 0, Size, Name);
if (FHandle != NULL)
{
FCreated = GetLastError() == 0;
FFileView = (BYTE*)MapViewOfFile(FHandle,
FILE_MAP_WRITE, 0, 0, Size);
if (FFileView && FCreated)
{
ZeroMemory(FFileView, Size);
}
}
else
{
FFileView = NULL;
}
}
TSharedMem::~TSharedMem()
{
if (FFileView)
{
UnmapViewOfFile(FFileView);
}
if (FHandle)
{
CloseHandle(FHandle);
}
}
wanglovec
2007-05-17
打赏
举报
回复
up
Waiting4you
2007-03-01
打赏
举报
回复
MSDN里有例子的,这里放一个我的,TForm1上放一个Label1,Timer1,事件代码对照下面写.编译完成后同时运行N个实例,点击其中一个窗体,所有的窗体上的Label上的字符都会跟着变(内存共享了)
HANDLE hMapFile=NULL;
LPVOID pMapFile=NULL;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
hMapFile = CreateFileMapping((HANDLE)(0xFFFFFFFF),
NULL,
PAGE_READWRITE,
0,
100,
"Hello_Mapping");
if(hMapFile!=NULL )
pMapFile = MapViewOfFile(hMapFile,
FILE_MAP_ALL_ACCESS,
0,
0,
0);
if(pMapFile==NULL)Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
UnmapViewOfFile(pMapFile);
CloseHandle(hMapFile);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
char *p=(char*)pMapFile;
if(p!=NULL&&p[0]!='\0')
{
Label1->Caption=p;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClick(TObject *Sender)
{
char *p=(char*)pMapFile;
strcpy(p,"Hello1");
p[5]='0'+GetTickCount()%10;
}
//---------------------------------------------------------------------------
daydayup234
2007-03-01
打赏
举报
回复
http://www.soudie.net/top_22314_cat_1/
Android专用驱动
Ashmem是一个
共享内存
驱动,它与传统的
共享内存
相比,最大的特点是它是通过文件描述符来描述的,并且可以动态地进行分块管理。动态分块管理的目的是可以将部分不再使用了的内存交回给系统,非常适合内存较小的移动...
python
共享内存
SharedMemory
该模块提供了一个SharedMemory类,用于分配和管理多核或对称多处理器(SMP)机器上进程间的
共享内存
。为了协助管理不同进程间的
共享内存
生命周期,multiprocessing.managers模块也提供了一个BaseManager的子类:...
量化IT工程师入门
QauntFabric交易系统中XMarketCenter和XQuant之间行情数据交互使用
共享内存
消息队列进行IPC通信,XTrader和XQuant之间报单、撤单、订单回报交互使用
共享内存
消息队列进行IPC通信,XTrader与XRiskJudge的风控请求和...
Linux进程间通信——使用
共享内存
下面将讲解进程间通信的另一种方式,使用
共享内存
。 一、什么是
共享内存
顾名思义,
共享内存
就是允许两个不相关的进程访问同一个逻辑内存。
共享内存
是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式...
进程间通信——
共享内存
(Shared Memory)
共享内存
是System V版本的最后一个进程间通信方式。
共享内存
,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,
共享内存
是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存...
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章