symbian进程间内存共享

来源:本站
导读:目前正在解读《symbian进程间内存共享》的相关信息,《symbian进程间内存共享》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《symbian进程间内存共享》的详细说明。
简介:最近看了一些进程间通讯的资料,基本上原理是一样的,在一个线程开一个全局的服务,另外一个可以通过全名字,或者部分名字查找这个服务,然后取得这个全局服务的内存地址,得到内存中的数据。

最近看了一些进程间通讯的资料,基本上原理是一样的,在一个线程开一个全局的服务,另外一个可以通过全名字,或者部分名字查找这个服务,然后取得这个全局服务的内存地址,得到内存中的数据。

在symbian上有RChunk,RTread等类,但是在3rd fp1上取消了RTread的Read和Write方法,所以只能用RChunk类了,调用方法如下:

一个线程启动服务:

_LIT(KChunkName,"xn Globla Chunk");

TInt rc=iChk.CreateGlobal(KChunkName,0x1000,0x5000);

//取得共享内存地址

TUint8* uid=iChk.Base();

HBufC* buf=HBufC8::NewL(255);

buf->Des().Copy(_L8("123456"));

//uid=&(iHbuf->Des()[0]);

//将数据放入到共享内存中

TPtrC8 ptr;

Mem::Copy(uid,(TAny *)buf->Des().Ptr(),buf->Length());

//服务线程ok

另外线程:

_LIT(KChunkName,"xn Globla Chunk");

RChunk chk;

chk.OpenGlobal(KChunkName,0);//第一个参数指定了全局内存块的名称,第二个参数用于说明块是为只读(1)还是可写的(0)

TUint8* uid=chk.Base();

TPtrC8 ptr;

//Mem::Copy(uid,(TAny *)iHbuf->Des().Ptr(),iHbuf->Length());

ptr.Set( (const TUint8*)uid , chk.Szie());

//ok 共享内存中的数据取到了,当然也可以修改。

提醒:《symbian进程间内存共享》最后刷新时间 2024-03-14 01:22:13,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《symbian进程间内存共享》该内容的真实性请自行鉴别。