qt QDataStream如何传入和传出int数组?
针对quint32的数组res[4]如下方式调用接收共享内存数据报错,个人感觉接收方式也是有问题的,感觉是往一个地址本身传数据了。但不知道应该怎么改。
QBuffer buffer; //构建缓冲区 QDataStream out(&buffer); //建立数据流对象,并和缓冲区关联 //对共享内存进行读写操作 sharememory->lock(); //锁定共享内存 //初始化缓冲区中的数据,setData函数用来初始化缓冲区。 //该函数如果在open()函数之后被调用,则不起任何作用。 //buffer.open(QBuffer::ReadOnly); //解除注释,则setData函数不起作用,无法加载内存中数据 buffer.setData((char*)sharememory->constData(), sharememory->size()); buffer.open(QBuffer::ReadOnly); //只读方式打开缓冲区 out >> res; //将缓冲区的数据写入QImage对象
QBuffer在进行 setData前必须是关闭的,所以你想先open再shetData肯定是不行的。
此外你的sharmemory又是什么东东?