Je sais que cela a été demandé un certain nombre de fois, mais aucune réponse ne semble résoudre ce problème.C++ Inclure les gardes
J'ai deux fichiers.
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
Ce que je suis en train de faire est déclarée une variable dans Scene.h et définir à partir de la fonction principale. Je ne suis pas sûr si je ne comprends pas inclure les gardes, mais je reçois des erreurs étranges:
'irr': n'est pas un nom de classe ou d'espace de noms erreur de syntaxe: manquant ';' avant '*' spécificateur de type manquant - int supposé. Note: C++ ne prend pas en charge par défaut-int
mais quand je déplace la ligne suivante dans le fichier de retour Main.cpp
irr::scene::ISceneManager* sceneManager;
la compilation du programme. Quand suis-je incapable de le déclarer dans scene.h et de définir la valeur depuis la fonction principale?
Dans ce fichier est 'irr :: scène :: ISceneManager' définie? – tmpearce
Scene.h, tout en haut. – Kurieita
Non, c'est là que vous déclarez une variable de type pointer-to-that-type. Où est ce ** type ** (classe ou struct) défini? – tmpearce