我正在使用Visual Studio开发DLL。目前,我有一个头文件:MyProject.h:

#pragma once

#ifdef MYLIBRARY_EXPORTS
#define MYLIBRARY_API __declspec(dllexport)
#else
#define MYLIBRARY_API __declspec(dllimport)
#endif

#include <map>
#include <string>

extern "C" class MYLIBRARY_API Class1
{
    // some stuff here...
};

extern "C" class MYLIBRARY_API Class2
{
    // some stuff here
};

我将向项目中添加更多类,并且我想为每个类添加单独的头文件(请告知是否应该这样做)。但是,最终,我希望将所有内容打包到单个.dll和.lib中,使得客户端只需要包含一个头文件即可。也就是说,客户端项目具有#include "MyProject.h",它实际上是头文件及其实现文件的集合。这可能吗,我该如何实现?谢谢。

编辑:

具体来说,我想做的就是将Class1放入Class1.h中,将Class2放入Class2.h中,并将它们都包含在一个称为MyLibrary.h的主头文件中,这样客户端只需要执行#include "MyLibrary.h"即可。

最佳答案

如果您有多个头文件,例如A.h,B.h等,并且只想向客户端提供包含所有头文件的Project.h,则只需在Project.h中包含所有头文件-像这样:

#ifndef MY_PROJECT_H
#define MY_PROJECT_H
#include "A.h"
#include "B.h"
#endif

关于c++ - 如何在C++中将多个头文件导出为单个头文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47985779/

10-11 23:02
查看更多