Aktuelle Zeit: 11.12.2024, 04:02

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: beim auslesen problem mit variablen
BeitragVerfasst: 21.08.2010, 19:14 
Offline

Registriert: 21.08.2010, 18:52
Beiträge: 1
Ich hab folgendes kleines Problem:

Ich wollte das erste Irrlicht-Tutorial "Hello, World!" machen, dabei aber die Parameter deviceType, window size und fullscreen aus einer xml-Datei auslesen.

Die xml-Datei sieht so aus:

Code:
<?xml version="1.0"?>
<config>
   <driverType value=EDT_OPENGL></driverType>
   <width value=640></width>
   <height value=480></height>
   <fullscreen value=0></fullscreen>
</config>


Und das ist mein code:

Code:
#include <irrlicht.h>
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#pragma comment(lib, "Irrlicht.lib")
#endif

E_DRIVER_TYPE driverType;
int width;
int height;
bool fullscreen;

void checkconfig ()
{
   IrrXMLReader* xml = createIrrXMLReader("config.xml");

   while (xml && xml->read())
   {
      if (!strcmp("driverType", xml->getNodeName()))
         driverType = xml->getAttributeValue("value");
      else
      if (!strcmp ("width", xml->getNodeName()))
         width = xml->getAttributeValue("value");
      else
      if (!strcmp ("height", xml->getNodeName()))
         height = xml->getAttributeValue("value");
      else
      if (!strcmp ("fullscreen", xml->getNodeName()))
         fullscreen = xml->getAttributeValue("value");
      break;
   }

   delete xml;
}

int main ()
{
   checkconfig ();

   IrrlichtDevice *device =
      createDevice(driverType, core::dimension2d<u32>(width, height), 16,
         fullscreen, false, false, 0);
//Der Rest ist genau wie der normale Hello-World code


Allerdings bekomme ich beim debuggen folgende Fehlermeldungen:

Zitat:
c:\dokumente und einstellungen\alex.rodie\desktop\nightsphere\bin\nightsphere\main.cpp(26) : error C2440: '=': 'const char *' kann nicht in 'irr::video::E_DRIVER_TYPE' konvertiert werden
Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
c:\dokumente und einstellungen\alex.rodie\desktop\nightsphere\bin\nightsphere\main.cpp(29) : error C2440: '=': 'const char *' kann nicht in 'int' konvertiert werden
Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
c:\dokumente und einstellungen\alex.rodie\desktop\nightsphere\bin\nightsphere\main.cpp(32) : error C2440: '=': 'const char *' kann nicht in 'int' konvertiert werden
Es gibt keinen Kontext, in dem diese Konvertierung möglich ist


Weiß jemand wie man das Umgehen kann?
Schon mal Danke im Voraus! :)


Nach oben
 Profil  
 
BeitragVerfasst: 24.08.2010, 14:26 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
EDT_OPENGL ist aus einer Enumeration. getAttributeValue liefert aber chars zurück. Das kannst du nicht konvertieren.
Du solltest dich eventuell nochmal mit c++ datentypen auseinandersetzen.
Außerdem kannst du dir das xml auslesen vereinfachen, indem du IAttributes benutzt.

mfg
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de