Hallo,
ich wollte mir mal die CEGUI anschauen und habe dann schweren Herzens von MinGW auf MSVS9 umgestellt. Nun bekomme ich zwar 1690(!!!) Warnungen, aber im Prinzip funktionierts...
Nach dem ich aber nun die CEGUI drin habem schmiert das Programm weg. Ich habs laut Tutorial eingebunden (bis auf angepasste Variablennamen).
Das Program schmiert bereits bei der Zeile
guirender = new IrrlichtRenderer( vdev, true ); weg.
Und hier schonmal der Code:
main.h
Code:
#include "version.h" //Autoversions-Nummern-System
#include <irrlicht.h> //Irrlicht VideoEngine
#include <irrklang.h> //Irrlicht AudioEngine
#include <irrxml.h> //Irrlicht XMLEngine zum einlesen von Configfiles und aehnlichem
#include <CEGUI.h>
#include <RendererModules/IrrlichtRenderer/irrlichtrenderer.h>
#include <iostream>
#include <windows.h>
#include "irrKlangFF.h"
#include "steuerung.h" //Tastatur- und Mausverarbeitung
#include "class_Config.h" //Tastatur- und Mausverarbeitung
using namespace irr;
using namespace irrklang;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
using namespace CEGUI;
IrrlichtDevice *vdev = 0;
ISoundEngine *adev = 0;
IVideoDriver *driver = 0;
ISceneManager *smgr = 0;
IGUIEnvironment *guienv = 0;
CEGUI::IrrlichtRenderer *guirender = 0;
scene::ICameraSceneNode *kamera = 0;
Steuerung steuerung;
main.cpp
Code:
#include "main.h"
int main()
{
Config *cfg = new Config();
vdev = createDevice(cfg->Videotreiber(), cfg->VideoXY(), 32, false, false, false, &steuerung);
adev = createIrrKlangDevice();
if (!vdev | !adev)
return 1;
adev->play2D("audio/hgmusik/ophelia.mp3", true);
stringw str = L"Mialail Client V";
str += AutoVersion::FULLVERSION_STRING;
str += " ";
str += AutoVersion::STATUS;
str += "-Status (";
str += AutoVersion::DATE;
str += ".";
str += AutoVersion::MONTH;
str += ".";
str += AutoVersion::YEAR;
str += ")";
vdev->setWindowCaption(str.c_str());
driver = vdev->getVideoDriver();
smgr = vdev->getSceneManager();
// guienv = vdev->getGUIEnvironment();
guirender = new IrrlichtRenderer( vdev, true );
// new CEGUI::System( guirender );
while(vdev->run())
{
driver->beginScene(true, true, SColor(255,255,255,140));
smgr->drawAll();
// CEGUI::System::getSingleton().renderGUI();
driver->endScene();
}
vdev->drop();
adev->drop();
return 0;
}
Vielleicht hat jemand eine zündende Idee...
Liebe Grüße