是否包含在导出的DLL的.h中?他们应该吗?

时间:2014-03-21 18:43:11

标签: c++ dll include

我有一个巨大的c ++项目,其中几个不同的单元被构建为DLL库。现在我有一个基本的库,大部分其他项目都会使用它。

让我们说DLL.h文件有类似的东西:
#include <vector>
#include "OtherClass.h"

我添加了.lib路径等...,所以我的其他项目可以使用DLL。事实上,在我的“主要”项目中包含DLL没有错误。

现在我的问题是,当我做#include“DLL.h”时,包含在我的主项目中? 我理性的说,因为我将在几乎100%使用这个DLL的项目中使用向量,所以我不妨将include推送到它,并且在每个使用它的项目中都没有。 (不确定这是最佳或最差的做法) 现在的问题是我的主项目确实识别了OtherClass.h中的类型,但没有识别类型向量。可能这是因为我没有在DLL中明确使用向量而只是做了包含?

1 个答案:

答案 0 :(得分:0)

问题不在DLL链接或依赖关系链中。事实是我忘了包括声明:
using namespace std;
所以当我尝试在主项目中做的时候 vector<int> someVector; 我得到一个错误,说矢量不是模板。 添加“使用”线解决了它 解决它的另一种方法是使用std :: vector,但由于它是已编写的代码,因此我选择了其他选项。

感谢@MadScienceDreams,你的问题实际上让我得到答案!实际上,在这种情况下,dll中的包含链接到使用它的文件。