Qt Q_DECL_EXPORT的作用,生成.dll的同时生成.lib文件

#ifndef FitVCam_GLOBAL_H

 1 #define FitVCam_GLOBAL_H
 2  
 3 #include <QtCore/qglobal.h>
 4  
 5 #ifdef FitVCam_LIB
 6 # define FitVCam_EXPORT Q_DECL_EXPORT
 7 #else
 8 # define FitVCam_EXPORT Q_DECL_IMPORT
 9 #endif
10  
11 #endif // FitVCam_GLOBAL_H

FitVcamWidget.h

 1 #ifndef FITVCAMWIDGET_H
 2 #define FITVCAMWIDGET_H
 3  
 4 #include <QtGui/QWidget>
 5 #include "fitvcam_global.h"
 6 #include "ui_FitVCamWidget.h"
 7  
 8 class FitVCamWidgetPrivate;
 9 class FitVCam_EXPORT FitVCamWidget : public QWidget
10 {
11     Q_OBJECT
12  
13 public:
14     FitVCamWidget(QWidget *parent = 0, Qt::WFlags flags = 0);
15     ~FitVCamWidget();
16  
17 //private:
18     //Ui::FitVCamWidgetClass ui;
19 protected:
20     QScopedPointer<FitVCamWidgetPrivate> d_ptr;
21  
22 private:
23     Q_DECLARE_PRIVATE(FitVCamWidget);
24     Q_DISABLE_COPY(FitVCamWidget);
25 };
26  
27 #endif // FITVCAMWIDGET_H

FItVCamWidget.cpp

 1 #include "FitVCamWidget.h"
 2 #include "ui_FitVCamWidget.h"
 3  
 4 class FitVCamWidgetPrivate : public Ui_FitVCamWidget
 5 {
 6 public:
 7  
 8 };
 9  
10  
11 FitVCamWidget::FitVCamWidget(QWidget *parent, Qt::WFlags flags)
12     : QWidget(parent, flags),d_ptr(new FitVCamWidgetPrivate)
13 {
14     Q_D(FitVCamWidget);
15     //ui.setupUi(this);
16     d->setupUi(this);
17 }
18  
19 FitVCamWidget::~FitVCamWidget()
20 {
21  
22 }

Q_DECL_EXPORT宏主要为了导出这个类,生成.dll的同时生成.lib文件。提供给外部接口供其他类使用。

原文地址:https://www.cnblogs.com/ybqjymy/p/12882029.html