• 2755阅读
  • 3回复

[提问]调用第三方动态链接库,程序异常退出,请问是什么问题? [复制链接]

上一主题 下一主题
离线richardhan
 

只看楼主 倒序阅读 楼主  发表于: 2018-04-02
配置:Qt5.9 MinGW_32bit
调用添加:HEADERS += \        dialog.h \        Coredll/SynPublic.h \    ui_dialog.h
FORMS += \        dialog.ui
LIBS += \    SynIDCardAPI.dll \    SynIDCardAPI.lib
问题Starting D:\Qt\Qt Practice\build-IdCardmain2-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\IdCardmain2.exe...
程序异常结束。
D:\Qt\Qt Practice\build-IdCardmain2-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\IdCardmain2.exe crashed.


代码如下:#include "dialog.h"#include "ui_dialog.h"

extern "C"{    #include "Coredll/SynPublic.h"}

#include <QMessageBox>#include <QCloseEvent>#include <QDebug>#include <QProcess>#include <QSettings>
Dialog::Dialog(QWidget *parent) :    QDialog(parent),    ui(new Ui::Dialog){    ui->setupUi(this);}
Dialog::~Dialog(){    delete ui;}
void Dialog::on_pushButton_clicked()//巡卡{    int iRet;    int iPort;    int portOpen;
    iPort=1001;//usb接口1001    portOpen=0;    if(portOpen==0)    {          qDebug()<<'iRet';        iRet=Syn_OpenPort(iPort);        ui->textEdit->setText("打开端口""失败,返回值为:");
    }}


离线dosmlp

只看该作者 1楼 发表于: 2018-04-03
debug模式可以看到具体崩溃位置,
另外,使用了第三方库应该把dll文件放到工程目录下,不然程序跑不起来提示异常结束
离线richardhan

只看该作者 2楼 发表于: 2018-04-04
回 dosmlp 的帖子
dosmlp:debug模式可以看到具体崩溃位置,
另外,使用了第三方库应该把dll文件放到工程目录下,不然程序跑不起来提示异常结束 (2018-04-03 16:26) 

谢谢,我根据debug出来的问题搜了一下,是没完全复制dll,有遗漏的问题,虽然不知道是哪个dll
离线richardhan

只看该作者 3楼 发表于: 2018-04-04
问题解决了,把解决方法说一下,方便有同样错误的人查错,我的出错原因是调用dll时,dll复制时有遗漏,把dll文件复制到目录中就可以了
快速回复
限100 字节
 
上一个 下一个