墨香年少 32 发布于 2022年7月29日 下面的代码是我用Qt加载JsPrinterDll.dll的代码 .h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QLibrary> #include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE //出票机dll方法 typedef int (_stdcall *puniOpenUsb)(); class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); //初始化出票机 void init_printer(); private: Ui::MainWindow *ui; //出票机相关方法 bool PrintDllLoad = false; //加载状态 int printConnect = 0; //连接状态 puniOpenUsb uniOpenUsb = NULL; }; #endif // MAINWINDOW_H .cpp #pragma execution_character_set("utf-8") #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox> #include <QDebug> #include "Windows.h" MainWindow::MainWindow(QWidget *parent):QMainWindow(parent),ui(new Ui::MainWindow) { ui->setupUi(this); this->setStyleSheet("font-family: \"Microsoft Yahei\";"); //初始化出票机 this->init_printer(); } //初始化出票机 void MainWindow::init_printer() { HINSTANCE JsPrinterDll = LoadLibraryA("JsPrinterDll"); if(JsPrinterDll) { qDebug() << "出票机dll加载......OK"; PrintDllLoad = true; uniOpenUsb = (puniOpenUsb)GetProcAddress(JsPrinterDll, "uniOpenUsb"); printConnect = uniOpenUsb(); if(printConnect >= 1) { qDebug() << "出票机连接......OK"; } else { qDebug() << "出票机连接失败!状态码:" << printConnect; } } else { PrintDllLoad = false; uniOpenUsb = NULL; printConnect = 0; } } MainWindow::~MainWindow() { delete ui; } 输出: 出票机dll加载......OK 出票机连接......OK 目之所及,皆是回忆,心之所想,皆是过往 分享这篇帖子 链接帖子 分享到其他站点