首页 > 解决方案 > QT:实现QWidget的子类并生成dll时的问题

问题描述

我想实现一个子类QWidget,并将其作为dll。

最简单的例子是:

// widget.h
#ifndef mywidget_header_h
#define mywidget_header_h

#ifndef Widget_Exports
    #define Widget_Export __declspec(dllexport)
#else
    #define Widget_Export __declspec(dllimport)
#endif

#include <qwidget.h>

class Widget_Export Widget: public QWidget
{
public:
    Widget();
}
#endif

// -----------------------------------------------------------
// widget.cpp

#include "widget.h"
Widget::Widget():
    QWidget()
{

}

一个错误被报告为:

unresolve external symbol "__declspec(dllimport) const Widget::`vftable` {for `QObject`}" (__imp_??_7Widget@@6BQObject@@@), function "public: __cdecl Widget::Widget(void)" (??0widget@@QEAA@XZ)

如何解决这个问题呢?任何建议表示赞赏!

我的环境是:

win10
vs2019
qt:5.12

标签: qtdll

解决方案


推荐阅读