나는 이것이 여러 번 묻는 것을 알고 있지만 어떤 해답도이를 해결하지 못합니다.C++ 경비원을 포함하십시오
두 개의 파일이 있습니다.
하여 Main.cpp
#include <irrlicht\irrlicht.h>
#include <vector>
#include <string>
#include <iostream>
#include "Scene.h"
#include "Camera.h"
#include "Gui.h"
irr::IrrlichtDevice* device;
irr::video::IVideoDriver* driver;
int main() {
device = irr::createDevice(irr::video::EDT_SOFTWARE, irr::core::dimension2d<irr::u32>(640, 480), 16, false, false, false, 0);
if (!device)
return 1;
device->setWindowCaption(L"NeoTrap");
driver = device->getVideoDriver();
sceneManager = device->getSceneManager();
GUIEnvironment = device->getGUIEnvironment();
//Testing
Mesh* ground = new Mesh();
//Testing
while (device->run()) {
driver->beginScene(true, true, irr::video::SColor(255, 120, 102, 136));
sceneManager->drawAll();
GUIEnvironment->drawAll();
driver->endScene();
}
device->drop();
return 0;
}
Scene.h
#ifndef _SCENE_HEADER_
#define _SCENE_HEADER_
irr::scene::ISceneManager* sceneManager;
struct Mesh {
public:
Mesh();
private:
};
class Scene {
public:
Scene();
private:
};
#endif
내가 Scene.h에서 변수를 선언 할 메인 함수 내에서 정의하는 것을 시도하고있다. 경비원을 이해할 수 있는지 확실하지 않지만 이상한 오류가 발생합니다.
'irr': 클래스 또는 네임 스페이스 이름이 아닙니다. 구문 오류 : 누락 된 ';' before '*' 누락 된 유형 지정자 - int가 사용됩니다. 참고 : C++ 기본-INT
지원하지 않습니다하지만 난하여 Main.cpp 다시 다음 줄을 이동할 때
irr::scene::ISceneManager* sceneManager;
프로그램 컴파일 파일. 언제 scene.h에서 선언 할 수없고 main 함수에서 값을 설정할 수 있습니까?
하는'IRR :: 장면 :: ISceneManager' 정의? – tmpearce
맨 위에있는 Scene.h. – Kurieita
아니, 그게 포인터 타입의 변수를 선언하는 곳이다. ** type ** (클래스 또는 구조체)는 어디에 정의되어 있습니까? – tmpearce