在什么条件下C ++标头不可传递?

时间:2013-02-22 03:28:09

标签: c++ header-files

我遇到了#include一个标题的情况,我遇到编译错误,需要我#including标题已包含在原始标题中。

标题包含以下内容:

#pragma once

#include <atlbase.h>
#include <atlcom.h>

#include "itestobj.h"

extern "C" ITestObj* WINAPI GetTestObj();

当我对代码进行编码时,我得到了一堆与ATL相关的编译错误,除了上面的标题之外,还在C ++文件中包含了atlbase.hatlcom.h

为什么通常不会包含这些标题?

1 个答案:

答案 0 :(得分:0)

很可能,这些标头中至少有一个包含您在帖子中显示的文件。由于#pramga once告诉编译器只包含一次,因此它会停止,并且您不会获得所有声明。