标题:QT5关于共享内存的问题,为什么在mingw版本可以而在vs版本不可以,这两个编译器什么导致这样的结果的?
作者:361203930
日期:2017-05-21 08:51
内容:
这是读取数据方的头文件:.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
#include"windows.h"
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void slottimeout();
public:
QLabel *label;
QGridLayout *mainlayout;
private:
HANDLE hMapFlie;
LPVOID intbuf;
int *pt;
};
#endif // MAINWINDOW_H
这是读取数据方的源文件.cpp:
#include "mainwindow.h"
#include
#define BUF_SIZE 1025
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QTimer *timer=new QTimer;
label=new QLabel(this);
mainlayout=new QGridLayout(this);
mainlayout->addWidget(label,1,0);
connect(timer,SIGNAL(timeout()),this,SLOT(slottimeout()));
timer->start(1000);
char szName[] = "NameOfMappingObject";// 共享内存的名字
hMapFlie=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,BUF_SIZE,(LPCTSTR)szName);
intbuf=MapViewOfFile(hMapFlie,FILE_MAP_ALL_ACCESS,0,0,BUF_SIZE);
pt=(int*)intbuf;
}
MainWindow::~MainWindow()
{
UnmapViewOfFile(intbuf);
CloseHandle(hMapFlie);
}
void MainWindow::slottimeout()
{
label->setText(QString::number(*pt));
}
写数据方的头文件.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
#include"windows.h"
class MainWindow : public QMainWindow
{
&n ..