我正在使用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/