//........Project for ABC.dll
//ABC.h
#pragma once
class ABC{
public:
ABC(){}
private:
std::vector<int> m_vector;
};
//ABC.cpp
#include "Stdafx.h"
#include "ABC.h"
//Stdafx.h
#include <vector>
直到今天,我已经被它委托给Stdafx.h中头跳过我的头#include <standard-lib.h>
。预编译的头问题
当我在单个项目文件中工作时,这从来都不是问题。
现在我试图添加一个新的DLL项目来收集一个项目中的共享代码。
它编译得很好,也生成了ABC.dll。
这是一个问题。当另一个使用ABC.dll的项目显示编译错误,说std::vector
不存在。
//...........Another Project using ABC.dll
int main(){
ABC abc;
}
错误C2039“向量”:是不是“性病”
得到它的工作的一员,我必须包括所有图书馆在消费者的的Stdafx.h太。
也许我一直误用预编译头。
我想知道我对PCH的做法是错误还是正确。
如果这是错误的,我将不胜感激,如果你建议正确的方式使用PCH。
谢谢。
最后一个片段缺少'#include'。获得ABC.h编译所需的是什么。你以前从来没有意识到这一点,因为stdafx.h包括它。另请注意,第一个片段中的#include for vector没有任何用处,它已包含在内。这*实际上没有任何与预编译头文件有关。 –