如何在C++中将多个头文件导出为单个头文件?
How to export multiple header files as a single header file in 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
中,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
对不起,我误解了你在问什么。
是的,您可以在库头文件中包含多个头文件(请确保将它们包含在#include "..."
中)。
如果您想消除在链接器部分中指定库的需要(这就是我认为您要问的),使用 MSVC++ 您正在寻找的是
#pragma comment( comment-type [,"commentstring"] )
https://learn.microsoft.com/en-us/cpp/preprocessor/comment-c-cpp
相关文章:
- 通过多个头文件使用常量变量
- 如果我已经有一个头,那么模板(-t)文件属于哪里
- 结构包含在两个头文件中,这两个文件我都不拥有
- 在 C++ 中使用另一个头文件中的抽象类
- 如何将我的程序添加到文件和文件夹的macOS右键单击菜单?
- 可以在JSON文件的帮助下在Qt中创建UI表单
- 在 cout 中将线条表单文件与自定义文本组合时出现问题
- 在多个头文件中从接口声明被覆盖的函数时,如何避免重复代码?
- 在 Win32 应用中,如果未选择文件夹并且用户单击"确定",则文件夹选择对话框将关闭
- 一次包含一个 #include 表达式的多个头文件?
- 我需要在不使用前向声明的情况下相互包含两个头文件,导致"incomplete type"错误
- 如何检查每个头文件是否包含必需的包含文件?
- 是否可以单步执行.dll文件中定义的成员函数?
- 我可以在没有临时变量的情况下将单字节写入文件吗?
- 使用两个.cpp文件和一个头文件
- 阅读一个大文件来计算重复K次的单词数
- 如何将类对象作为对另一个头文件函数的引用传递
- 如何从同一个头文件中定义 2 个类,而一个类依赖于另一个类
- 制作一个包含 2 个 .cpps 和一个头文件的生成文件
- 如何在C++中将多个头文件导出为单个头文件?