#include "qtsln1.h"
#include "windows.h"
int QTSln1::recMax = 0;
int QTSln1::CONTROL_FRAME = 0;
int QTSln1::sendMax = 0;
HANDLE QTSln1::hFileMap = (HANDLE)0;
HANDLE QTSln1::hView = (HANDLE)0;
HANDLE QTSln1::hCreateFileMap = (HANDLE)0;
HANDLE QTSln1::hOpenFileMap = (HANDLE)0;
HANDLE QTSln1::hOpenMapView = (HANDLE)0;
QTSln1::QTSln1(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
QTSln1::recMax = 10;
QTSln1::CONTROL_FRAME = 25;
QTSln1::sendMax = 10;
}
QTSln1::~QTSln1()
{
}
void QTSln1::on_pbtnSend_clicked()
{
}
void QTSln1::OpenMemDBCS()
{
}
void QTSln1::on_pbtnSend_2_clicked()
{
ControlStruct* pSendCtlFrm;
char* MapName = "Command";
QTSln1::hCreateFileMap = CreateFileMapping(
(HANDLE)0xFFFFFFFF,
NULL,
PAGE_READWRITE,
0,
QTSln1::CONTROL_FRAME * QTSln1::sendMax,
(LPCWSTR)MapName);
if (QTSln1::hCreateFileMap != NULL)
{
QTSln1::hView = MapViewOfFile( QTSln1::hCreateFileMap, FILE_MAP_ALL_ACCESS, 0, 0, QTSln1::CONTROL_FRAME * QTSln1::sendMax);
if ( QTSln1::hView != NULL)
{
for (int i = 0; i < QTSln1::sendMax; i++)
{
pSendCtlFrm = (ControlStruct*) ((LPBYTE) QTSln1::hView + i * QTSln1::CONTROL_FRAME);
pSendCtlFrm->id = i;
}
}
else
{
QString str;
str = QString::fromLocal8Bit("内存未打开!");
QMessageBox::information( this, tr("Info!"), str, QMessageBox::Ok );
}
}
else
{
QString str;
str = QString::fromLocal8Bit("内存未创建!");
QMessageBox::information( this, tr("Info!"), str, QMessageBox::Ok );
}
}
void QTSln1::on_pbtnSend_3_clicked()
{
ControlStruct* pSendCtlFrm;
char* MapName = "Command";
QTSln1::hOpenFileMap = OpenFileMapping(FILE_MAP_ALL_ACCESS, false, (LPCTSTR)MapName);
if (QTSln1::hOpenFileMap != NULL)
{
QTSln1::hOpenMapView = MapViewOfFile( QTSln1::hOpenFileMap, FILE_MAP_ALL_ACCESS, 0, 0, QTSln1::CONTROL_FRAME * QTSln1::sendMax);
if ( QTSln1::hOpenMapView != NULL)
{
for (int i = 0; i < QTSln1::sendMax; i++)
{
pSendCtlFrm = (ControlStruct*) ((LPBYTE) QTSln1::hOpenMapView + i * QTSln1::CONTROL_FRAME);
pSendCtlFrm->pid = i;
}
for (int i = 0; i < QTSln1::sendMax; i++)
{
pSendCtlFrm = (ControlStruct*) ((LPBYTE) QTSln1::hOpenMapView + i * QTSln1::CONTROL_FRAME);
QString cmd = "id:" + QString::number(pSendCtlFrm->id);
QString id = QString::number(pSendCtlFrm->pid);
QListWidgetItem *item = new QListWidgetItem(cmd, ui.listWidget);
item->setData(Qt::UserRole, id);
ui.listWidget->setCurrentItem(item);
}
}
else
{
QString str;
str = QString::fromLocal8Bit("内存未打开!");
QMessageBox::information( this, tr("Info!"), str, QMessageBox::Ok );
}
}
else
{
QString str;
str = QString::fromLocal8Bit("内存未创建!");
QMessageBox::information( this, tr("Info!"), str, QMessageBox::Ok );
}
}
[ 此贴被XChinux在2006-07-11 19:28重新编辑 ]