#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include "QLibrary"
#include "QMessageBox"
typedef unsigned char (*idr_beep)(unsigned long xms);
typedef unsigned char (*idr_read)(unsigned char *serial);
typedef unsigned char (*idr_read_once)(unsigned char *serial);
typedef unsigned char (*pcdgetdevicenumber)(unsigned char *devicenumber);
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
unsigned char result;
QLibrary mylib("OUR_IDR.dll");
if (!mylib.load())
{
QMessageBox::information(NULL, "提示", "动态库没装载!原因是动态库OUR_IDR.dll没放在生成exe文件相同目录下!");
return;
}
idr_beep myidr_beep = (idr_beep)mylib.resolve("idr_beep");
if (myidr_beep == NULL)
{
mylib.unload();
QMessageBox::information(NULL, "提示", "请检查函数名是否正确!");
return;
}
result = myidr_beep(30);
mylib.unload();
if(result > 0)
{
if(result == 23)
{
QMessageBox::information(NULL, "提示", "机器没连上或者驱动没下载");
}
else
{
QMessageBox::information(NULL, "提示", "错误代码:" + QString::number(result));
};
}
}
void MainWindow::on_pushButton_2_clicked()
{
unsigned char devicenumber[4];
unsigned char result;
QLibrary mylib("OUR_IDR.dll");
if (!mylib.load())
{
QMessageBox::information(NULL, "提示", "动态库没装载!原因是动态库OUR_IDR.dll没放在生成exe文件相同目录下!");
return;
}
pcdgetdevicenumber mypcdgetdevicenumber = (pcdgetdevicenumber)mylib.resolve("pcdgetdevicenumber");
if (mypcdgetdevicenumber == NULL)
{
mylib.unload();
QMessageBox::information(NULL, "提示", "请检查函数名是否正确!");
return;
}
result = mypcdgetdevicenumber(devicenumber);
mylib.unload();
if(result > 0)
{
if(result == 23)
{
QMessageBox::information(NULL, "提示", "机器没连上或者驱动没下载");
}
else
{
QMessageBox::information(NULL, "提示", "错误代码:" + QString::number(result));
}
}
else
{
QMessageBox::information(NULL, "提示", QString::asprintf("设备号十六进制数:%02X-%02X-%02X-%02X", devicenumber[0],devicenumber[1],devicenumber[2],devicenumber[3]));
}
qDebug()<<result;
}
void MainWindow::on_pushButton_3_clicked()
{
unsigned char serial[5];
unsigned char result;
QLibrary mylib("OUR_IDR.dll");
if (!mylib.load())
{
QMessageBox::information(NULL, "提示", "动态库没装载!原因是动态库OUR_IDR.dll没放在生成exe文件相同目录下!");
return;
}
idr_read myidr_read = (idr_read)mylib.resolve("idr_read");
if (myidr_read == NULL)
{
mylib.unload();
QMessageBox::information(NULL, "提示", "请检查函数名是否正确!");
return;
}
result = myidr_read(serial);
if(result > 0)
{
mylib.unload();
if(result == 8)
{
QMessageBox::information(NULL, "提示", "卡不在感应区内或者寻找不到卡");
}
else if(result == 23)
{
QMessageBox::information(NULL, "提示", "机器没连上或者驱动没下载");
}
else if(result == 24)
{
QMessageBox::information(NULL, "提示", "通讯超时");
}
else
{
QMessageBox::information(NULL, "提示", "错误代码:" + QString::number(result));
}
}
else
{
ui->textEdit->setText(QString::asprintf("%02X%02X%02X%02X%02X",serial[0],serial[1],serial[2],serial[3],serial[4]));
idr_beep myidr_beep = (idr_beep)mylib.resolve("idr_beep");
if (myidr_beep == NULL)
{
mylib.unload();
QMessageBox::information(NULL, "提示", "请检查函数名是否正确!");
return;
}
myidr_beep(30);
mylib.unload();
}
}
void MainWindow::on_pushButton_4_clicked()
{
unsigned char serial[5];
unsigned char result;
QLibrary mylib("OUR_IDR.dll");
if (!mylib.load())
{
QMessageBox::information(NULL, "提示", "动态库没装载!原因是动态库OUR_IDR.dll没放在生成exe文件相同目录下!");
return;
}
idr_read_once myidr_read_once = (idr_read_once)mylib.resolve("idr_read_once");
if (myidr_read_once == NULL)
{
mylib.unload();
QMessageBox::information(NULL, "提示", "请检查函数名是否正确!");
return;
}
result = myidr_read_once(serial);
if(result > 0)
{
mylib.unload();
if(result == 23)
{
QMessageBox::information(NULL, "提示", "机器没连上或者驱动没下载");
}
else if(result == 24)
{
QMessageBox::information(NULL, "提示", "通讯超时");
}
else if(result == 8)
{
QMessageBox::information(NULL, "提示", "卡不在感应区内或者寻找不到卡");
}
else
{
QMessageBox::information(NULL, "提示", "错误代码:" + QString::number(result));
}
}
else
{
ui->textEdit->setText(QString::asprintf("%02X%02X%02X%02X%02X",serial[0],serial[1],serial[2],serial[3],serial[4]));
idr_beep myidr_beep = (idr_beep)mylib.resolve("idr_beep");
if (myidr_beep == NULL)
{
mylib.unload();
QMessageBox::information(NULL, "提示", "请检查函数名是否正确!");
return;
}
myidr_beep(30);
mylib.unload();
}
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https: