尽管编辑了我的包含语句以修复,但得到“错误 C2653:'TextureManager':不是类或命名空间名称”
Posted
技术标签:
【中文标题】尽管编辑了我的包含语句以修复,但得到“错误 C2653:\'TextureManager\':不是类或命名空间名称”【英文标题】:Getting "error C2653: 'TextureManager': is not a class or namespace name" despite editing my include statements to fix尽管编辑了我的包含语句以修复,但得到“错误 C2653:'TextureManager':不是类或命名空间名称” 【发布时间】:2021-11-14 13:30:09 【问题描述】:我收到关于类/命名空间不存在的错误 c2653。有问题的文件称为TextureManager.h,它包含类TextureManager,奇怪的是VS说该类存在,我可以使用右键菜单中的“转到”按钮来访问它。但是当我去构建时,它给了我错误。另外,如果我关闭项目并重新打开它,它会说它无法找到源文件。
这是我尝试使用 TextureManager 的地方,第 14 行抛出了错误(带有 TextureManager::LoadTexture() 的那个)
##pragma once
#include "../TextureManager.h"
class SpriteComponent : public Component
private:
SDL_Texture* texture;
public:
SpriteComponent(const char* path)
texture = TextureManager::LoadTexture(path);
;
这是 TextureManager.h
#pragma once
#include "Game.h"
class TextureManager
public:
static SDL_Texture* LoadTexture(const char* fileName);
;
这是它的 .cpp
#include "TextureManager.h"
SDL_Texture* TextureManager::LoadTexture(const char* fileName)
SDL_Surface* tempSurface = IMG_Load(fileName);
SDL_Texture* tex = SDL_CreateTextureFromSurface(Game::renderer, tempSurface);
SDL_FreeSurface(tempSurface);
return tex;
文件目录看起来像这样(使用 + 表示文件夹和 - 表示文件)
+Project
+Assets
-some pngs
+Src
-Game.cpp
-Game.h
-main.cpp
-Map.cpp
-Map.h
-TextureManager.cpp
-TextureManager.h
+ECS
-Components.h
-ECS.h
-PositionComponent.h
-SpriteComponent.h
编辑
要删除 SpriteComponent 类中所有不必要的代码以及其他 2 个代码示例,我不确定是哪个部分导致了错误。
有人提到循环包含,textureManager.h 确实包含 game.h,其中包含 components.h,其中包含 Sprite 组件,如果这是问题,那将是一个好的解决方案,我尝试对此进行测试,但同时测试其他部分坏了,所以虽然我没有收到那个错误,但我认为这是因为构建中从不需要该文件。
【问题讨论】:
哪一行引发了错误?找不到什么来源? 我猜你有循环包含。请提供minimal reproducible example spriteComponent(char*) 和 update() 函数中出现错误,所有区域都具有 TextureManager::。 【参考方案1】:这是循环包含,所以我将 components.h 的包含从 game.h 移到了 game.cpp 文件。
谢谢你们。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于尽管编辑了我的包含语句以修复,但得到“错误 C2653:'TextureManager':不是类或命名空间名称”的主要内容,如果未能解决你的问题,请参考以下文章
试图刷新我的编码。回文练习给我一个问题。谷歌搜索了我的错误,但无法修复它。
尽管使用了 if 语句,但 RelatedObjectDoesNotExist 错误