头文件中声明的命名空间在源文件中未被识别
Namespace declared in Header file is not being recognized in Source File
我做错了什么?
APP.h
#pragma once
namespace App{
enum class AppStatus{
Exit,
Menu,
Run
};
void frameLoop();
AppStatus state;
}
App.cpp
#include "App.h"
#include "stdafx.h"
#include <Graphic\Graphic.h>
void App::frameLoop()
{
while (state != AppStatus::Exit) {
Graphic::renderingSequence();
}
}
错误
Error C2653 'App': is not a class or namespace name App
Error C2065 'state': undeclared identifier App
Error C2653 'AppStatus': is not a class or namespace name App
Error C2065 'Exit': undeclared identifier App
请注意,我的命名空间 Graphic
(在 \Graphic\Graphic.h 中声明)正在被编译器识别,即使我以相同的方式声明它。
stdafx.h(微软预编译header)必须在最前面。这适用于任何打开预编译 headers 选项和 stdafx.h 标准 pch 的 Visual C++ 项目。这些是新项目的默认设置。
在命名空间 App 中定义函数的最简单和最少的 error-prone 方法就是
放在那里。
APP.CPP
#include "stdafx.h" // Nothing goes above this
#include "App.h"
#include <Graphic\Graphic.h>
namespace App {
void frameLoop()
{
while (state != AppStatus::Exit) {
Graphic::renderingSequence();
}
}
}
我做错了什么?
APP.h
#pragma once
namespace App{
enum class AppStatus{
Exit,
Menu,
Run
};
void frameLoop();
AppStatus state;
}
App.cpp
#include "App.h"
#include "stdafx.h"
#include <Graphic\Graphic.h>
void App::frameLoop()
{
while (state != AppStatus::Exit) {
Graphic::renderingSequence();
}
}
错误
Error C2653 'App': is not a class or namespace name App
Error C2065 'state': undeclared identifier App
Error C2653 'AppStatus': is not a class or namespace name App
Error C2065 'Exit': undeclared identifier App
请注意,我的命名空间 Graphic
(在 \Graphic\Graphic.h 中声明)正在被编译器识别,即使我以相同的方式声明它。
stdafx.h(微软预编译header)必须在最前面。这适用于任何打开预编译 headers 选项和 stdafx.h 标准 pch 的 Visual C++ 项目。这些是新项目的默认设置。
在命名空间 App 中定义函数的最简单和最少的 error-prone 方法就是 放在那里。
APP.CPP
#include "stdafx.h" // Nothing goes above this
#include "App.h"
#include <Graphic\Graphic.h>
namespace App {
void frameLoop()
{
while (state != AppStatus::Exit) {
Graphic::renderingSequence();
}
}
}