不久前,我有一个类似的帖子,是基于我收到的一个错误。我能够修复它,但从那以后我一直有麻烦做的事情,因为头部不断阻止其他头部使用代码。老实说,这些标题让我很困惑,如果有人有任何资源可以解决这些类型的问题,那将是有帮助的。
我本质上想做的是让rModel.h包含在RenderEngine.h中。每次我将rModel.h添加到RenderEngine.h时,rModel.h就不能再使用RenderEngine.h(rModel.h也包含RenderEngine.h)。
所以简而言之,RenderEngine和rModel需要相互使用功能。除此之外,Main.cpp还需要使用RenderEngine。
stdafx.h公司

#include "targetver.h"

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>

// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include "resource.h"

主.cpp
#include "stdafx.h"
#include "RenderEngine.h"
#include "rModel.h"

// Global Variables:

RenderEngine go;

rModel *g_pModel;

...code...........

rModel.h型
#ifndef _MODEL_H
#define _MODEL_H
#include "stdafx.h"
#include <vector>
#include <string>
#include "rTri.h"
#include "RenderEngine.h"

........Code

RenderEngine.h公司
#pragma once
#include "stdafx.h"
#include "d3d10.h"
#include "d3dx10.h"
#include "dinput.h"
#include "rModel.h"

.......Code......

最佳答案

正如我之前在这个问题上写的,谷歌在C++中讲述了Forward declaration
这可能会解决您的问题,但循环头依赖性再次表明应用程序设计不好。

09-06 06:14