如何在C ++中将多个头文件导出为单个头文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在C ++中将多个头文件导出为单个头文件?相关的知识,希望对你有一定的参考价值。

我正在使用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中的Class2Class2.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
另一答案

对不起,我误解了你的要求。

是的,您可以拥有库头文件中包含的多个头文件(请确保将它们包含在#include "..."中)。

如果你想消除在链接器部分中指定库的需要(这是我认为你要问的),使用MSVC ++,你正在寻找的东西是

#pragma comment( comment-type [,"commentstring"] )

https://docs.microsoft.com/en-us/cpp/preprocessor/comment-c-cpp

以上是关于如何在C ++中将多个头文件导出为单个头文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C 编程中将两个头文件和 3 个 c 文件链接到一个可执行文件中?

如何在SSIS中将大型Excel文件拆分为多个小文件?

在c#中将多个文件上传到FTP

如何将大文件(12gb)拆分为多个 1GB 压缩(.gz)档案? C#

如何将 <glad/glad.h> 包含在 C++ 中的多个头文件中?

linux查看包含的头文件源文件