Qt中提供了 QSharedMemory 类来蔽好实现共享内存相关的 *** 作,本文介绍Qt中 QSharedMemory 类的常用函数以及具体的实现。
头文件 #include <QSharedMemory>
一、类的创建
注:只有设置了key,才可以调用 create() 和 attach() 函数。
二、创建共享内存
size :创建共享内存的大小
mode :内存的访问方式,默认为可读可写。 QSharedMemory 类定义一个枚举类变量 AccessMode ,指定了两种共享内存的访问方式:
三、附加/分离共享内存
附加 :将当前进程附加到以关键字为key的共享内存,默认的访问方式为可读可写。只有附加的共享内存才能读取其内存数据。
分离 :将以关键字为key的共享内存分离进程,分离后,进程将不再能访问共享内存。如果这是附加到共享仔顷内存段的念并陆最后一个进程,则共享内存段由系统释放,即内容被销毁。
四、锁定/解锁共享内存
用法与常见的锁一样,访问共享内存之前锁定,访问结束后解锁。
由于需要人为手动解锁,这里不建议使用这种方式,可以使用 RAII 机制的 lock_guard 来实现自动的加锁、解锁
五、其他
ShareMemA.h
ShareMemA.cpp
ShareMemB.h
ShareMemB.h
以前我也有有这种困惑后来解决办法也蔽闭不是很复杂,就是用全局变量
就是比如全碰并做局变量a,定义在窗口1的CPP里
窗笑衡口2的CPP的就定义外部全局变量a
不知道是不是你说的这个意思
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)