首页 > 系统服务 > 详细

进程通信QSharedMemory

时间:2015-08-08 23:05:05      阅读:418      评论:0      收藏:0      [点我收藏+]






..

class ShareMem
{

public:
	QSharedMemory*share;

	MainWindow*p;
	//char data;
	

	ShareMem(MainWindow *pp)
	{
		p = pp;

		QBuffer buffer;

		share=new QSharedMemory("shareMem");
	
		buffer.setData("123");/*3 byte*/

		cout << " create shareMem status :  "<<share->create(buffer.size(), QSharedMemory::ReadWrite) << endl;;

		share->lock();

		int size = buffer.size();

		memcpy((char*)share->data(), buffer.data().data(), qMin(size, share->size()));

		share->unlock();

		//share->detach();


	}

	bool isNotify()
	{


		QBuffer buffer;
		QSharedMemory share;
		share.setKey("shareMem");
		share.attach();
		share.lock();
		buffer.setData((char*)share.data(), share.size());
		share.unlock();
		share.detach();
		QString s = (char*)buffer.data().data();

		if (s == "123")return false;
		
	

		buffer.setData("123");/*3 byte*/
		share.attach();
		share.lock();
		int size = buffer.size();
		memcpy((char*)share.data(), buffer.data().data(), qMin(size, share.size()));
		share.unlock();
		share.detach();


		return true;

	}






};


进程通信QSharedMemory

原文:http://my.oschina.net/kkkkkkkkkkkkk/blog/489596

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!