当前位置: 代码迷 >> QT开发 >> Qt5.3.1 MINGW32环境下怎么加载使用libxl库,导出Excel表格
  详细解决方案

Qt5.3.1 MINGW32环境下怎么加载使用libxl库,导出Excel表格

热度:352   发布时间:2016-04-25 03:02:59.0
Qt5.3.1 MINGW32环境下如何加载使用libxl库,导出Excel表格
本帖最后由 yongxingongchen 于 2014-11-12 13:39:28 编辑
在工程文件 .pro中加入了
LIBS += ..\System\libxl\libxl.lib
QMAKE_POST_LINK += $$quote(cmd /c copy /y ..\System\libxl\libxl.dll .)

是libxl静态库的路径一斤连接.dll动态库的路径.....
同时在头文件中加入了
#include "libxl/libxl.h"
//#include "excelengine.h"
//#include "exportexcelobject.h"


但是在用mingw编译是没有出现问题,到程序使用到这一段代码时:
using namespace libxl;
QString savefilename = QFileDialog::getSaveFileName(this,tr("Save File"),"",tr(" (*.xls *.xlsx)"));
Book *book = xlCreateBook();
qDebug()<<"111111111111";
Sheet* sheet = book->addSheet("Sheet1");
qDebug()<<"----------";

出现了这样的问题
在程序输出里面看到这样的
Starting D:\Test\build-System-Desktop_Qt_5_3_MinGW_32bit-Debug\debug\System.exe...
111111111111
程序异常结束。
D:\Test\build-System-Desktop_Qt_5_3_MinGW_32bit-Debug\debug\System.exe crashed

程序崩溃了,而且是在执行Sheet出错,下一句调试语句没有打印出来....网上找了好多资料,现在也无法确定是不是编译器的问题,还是说编译环境配置里面出现了问题,请各位大神解惑
环境是:
------解决思路----------------------
这种运行时错误,除了你自己调试程序,别无它法。

题外:有几点没看懂

1. 你的 libxl.lib 是导入库,还是静态库?? 你提到的静态库,可以你后面似乎还使用了动态库 libxl.dll ??

2. 你的 libxl.lib 是MSVC编译的,还是MinGW编译的。从后缀看,它是MSVC编译的,但是你的Qt用的却是MinGW。而且你还编译通过了??

3. MinGw下要混用MSVC编译的库,除非libxl.lib 导出的是C接口而不是C++接口,可是你代码风格又是C++

另外,在Qt5下生成 Excel文件,Qt Xlsx 不能满足你的要求么?
  相关解决方案