您的位置:首页 > 编程语言 > Qt开发

Qt共享内存读写

2016-01-25 15:51 429 查看
#include
"mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

qmemory.setKey ("zzw");

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::on_pushButton_clicked()

{

QString s="zzw123";

ui->label->setText (s);

QBuffer buffer;

buffer.open (QIODevice::ReadWrite);

QDataStream in(&buffer);

in<<s;

qmemory.create (s.size ());

qmemory.lock ();

char* to=(char*)qmemory.data ();

const char* from=buffer.data ().data ();

memcpy (to,from,qmemory.size ());

qmemory.unlock ();

}

void MainWindow::on_pushButton_2_clicked()

{

if( qmemory.isAttached ()){

QMessageBox::information(this,"info","attached");

}else{

qmemory.attach ();

QBuffer nbuffer;

nbuffer.setData((char*)qmemory.constData(), qmemory.size());

nbuffer.open (QIODevice::ReadWrite);

QDataStream out(&nbuffer);

QString s;

out>>s;

    ui->label->setText (s);

qmemory.detach ();

}

}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 内存