给你个示例:
#ifndef CHINUXTEAM_EXCELINFC_HPP
#define CHINUXTEAM_EXCELINFC_HPP
#include <QtGlobal>
#ifdef Q_WS_WIN
#ifdef BUILDING_EXCELINFC_DLL
#define CTDLL_EXCELINFC_API __declspec(dllexport)
#else
#define CTDLL_EXCELINFC_API __declspec(dllimport)
#endif // BUILDING_EXCELINFC_DLL
#else
#define CTDLL_EXCELINFC_API
#endif // Q_WS_WIN
#include <QtCore>
#include <QtXml>
namespace ChinuxTeam
{
class CTDLL_EXCELINFC_API ExcelInfc
{
public:
ExcelInfc(const QString &xmlFile);
~ExcelInfc();
bool isValid() const;
////////////////////后面代码省略
};
}
#endif // #ifndef CHINUXTEAM_EXCELINFC_HPP
这个头文件定义的导出类既在编译DLL时使用,也在使用此DLL做链接时使用,Win/Lin下通用。
在编译此DLL时,增加宏定义BUILDING_EXCELINFC_DLL,在使用此DLL时,直接包含此头文件,链接时链接此DLL即可(不定义BUILDING_EXCELINFC_DLL宏)