Revision to QSharedMemory usage
来源:互联网 发布:达索 软件 编辑:程序博客网 时间:2024/06/04 22:00
The old blog: http://blog.csdn.net/wangyeqiang/article/details/8296930 (Not mine)
My revision:
Creator:
Widget::Widget(){ if(!shareMemory.create(size)) //After created, it will automatically attached { qDebug()<<tr("can't create memory segment"); qDebug()<<shareMemory.error(); }}
void Widget::on_pushButton_clicked() { QString filename = QFileDialog::getOpenFileName(this); QPixmap pixMap; pixMap.load(filename); ui->label->setPixmap(pixMap); QBuffer buffer; QDataStream out(&buffer); buffer.open(QBuffer::ReadWrite); out<<pixMap; qDebug()<<buffer.size(); int size = buffer.size(); shareMemory.attach(); qDebug()<<shareMemory.size(); shareMemory.lock(); char *to = (char*)shareMemory.data(); const char *from = (char*)buffer.data().data(); memcpy(to,from,qMin(size,shareMemory.size()));//数据从该进程中拷贝到共享数据内存中 shareMemory.unlock();//共享内层解锁 }
Widget::~Widget(){ shareMemory.detach(); //detach from this process. }
Data Fetcher
DataFetcherWidget::DataFetcherWidget(){ if(!shareMemory.create(size)) //still you can create it. After created, it will automatically attached { qDebug()<<tr("can't create memory segment"); qDebug()<<shareMemory.error(); <pre name="code" class="cpp"><pre name="code" class="cpp"> if(!shareMemory.attach())//将shareMemory与该进程绑定使之可以访问shareMemory里的内容 { qDebug()<<tr("can't attach share memory"); }
}
}
void DataFetcherWidget::on_pushButton_clicked() { if(!shareMemory.attach())//将shareMemory与该进程绑定使之可以访问shareMemory里的内容 { qDebug()<<tr("can't attach share memory"); } QBuffer buffer; QDataStream in(&buffer); QPixmap pixMap; shareMemory.lock();//给shareMemory枷锁 qDebug()<<shareMemory.size(); buffer.setData((char*)shareMemory.constData(),shareMemory.size());//将shareMemeory里的数据放到buffer里 buffer.open(QBuffer::ReadWrite); in>>pixMap; shareMemory.unlock();//将shareMemory解锁 ui->label->setPixmap(pixMap); }
DataFetcherWidget::~DataFetcherWidget(){ shareMemory.detach(); //detach from this process. }
0 0
- Revision to QSharedMemory usage
- QSharedMemory: how to use
- QSharedMemory
- QSharedMemory
- git revert to revision
- TortoiseSVN的update to revision操作
- QSharedMemory类
- SVN中update to revision与revert to revision的区别
- SVN中 update to revision与revert to revision的区别
- SVN中 update to revision与revert to revision的区别
- How to get CPU usage?
- Revert changes from this revision 跟Revert to this revision的区别, 首页
- SVN中Revert changes from this revision 跟Revert to this revision
- SVN中Revert changes from this revision 跟Revert to this revision
- How to see index usage (without "alter index ... monitoring usage")
- 问题解决:Repository has not been enabled to accept revision propchanges;
- 问题解决:Repository has not been enabled to accept revision propchanges; .
- SVN: Revert to a previous revision after a wrong update
- Node.js自动化测试及大规模性能测试技术实现(Java&Node.JS)
- 风云
- OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
- nefu1010裸的欧拉函数
- Odoo(OpenERP)开发实践:通过XML-RPC接口访问Odoo数据库
- Revision to QSharedMemory usage
- Mac OS X 下 su 命令提示 sorry 的解决方法
- 黑马程序员------OC Foundation框架
- 人员分派问题
- Cocoapods Podfile配置
- 自定义ArrayAdapter
- PHP小例子
- 黑马程序员----java基础HashSet和TreeSet总结
- 用objective c开发的第一个mac程序(2)——初识oc cocoa swift