Aktuelle Zeit: 17.04.2021, 03:04

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: IrrXML kompilieren -> Fehler
BeitragVerfasst: 29.11.2008, 17:34 
Offline

Registriert: 08.06.2008, 17:27
Beiträge: 9
Hiho ich habe ein Problem das IrrXML-Beispiel zu kompilieren.

Code:
#include <irrlicht.h>
using namespace irr; // irrXML is located
using namespace io;  // in the namespace irr::io

#include <string> // we use STL strings to store data
                  // in this example

int main(void)
{
  // create the reader using one of the factory functions
  IrrXMLReader* xml = createIrrXMLReader("config.xml");

  // strings for storing the data we want to get out of the file
  std::string modelFile;
  std::string messageText;
  std::string caption;

  // parse the file until end reached

  while(xml && xml->read())
  {
    switch(xml->getNodeType())
    {
    case EXN_TEXT:
       // in this xml file, the only text which
       // occurs is the messageText
       messageText = xml->getNodeData();
       break;
    case EXN_ELEMENT:
       if (!strcmp("model", xml->getNodeName()))
         modelFile = xml->getAttributeValue("file");
       else
       if (!strcmp("messageText", xml->getNodeName()))
         caption = xml->getAttributeValue("caption");
       break;
    }
  }

  // delete the xml parser after usage
  delete xml;
}


ist ein bisschen abgeändert:
Irrlicht.h statt Irrxml.h
und int main(void) statt void main(),

Zitat:
1>------ Erstellen gestartet: Projekt: Mapreader, Konfiguration: Debug Win32 ------
1>Verknüpfen...
1>Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) class irr::io::IIrrXMLReader<char,class irr::io::IXMLBase> * __cdecl irr::io::createIrrXMLReader(char const *)" (__imp_?createIrrXMLReader@io@irr@@YAPAV?$IIrrXMLReader@DVIXMLBase@io@irr@@@12@PBD@Z)" in Funktion "_main".
1>C:\Dokumente und Einstellungen\MKU\Eigene Dateien\Visual Studio 2008\Projects\Mapreader\Debug\Mapreader.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\MKU\Eigene Dateien\Visual Studio 2008\Projects\Mapreader\Mapreader\Debug\BuildLog.htm" gespeichert.
1>Mapreader - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

aber daran liegt der Fehler wohl nicht da das originalbeispiel die gleichen Fehler hat.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IrrXML kompilieren -> Fehler
BeitragVerfasst: 29.11.2008, 19:57 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Du musst noch die Irrlicht.lib mit linken

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IrrXML kompilieren -> Fehler
BeitragVerfasst: 29.11.2008, 21:43 
Offline

Registriert: 08.06.2008, 17:27
Beiträge: 9
ich hab das jetzt mit

Code:
#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#endif


gemacht...geht das auch über die Optionen von VisualC++?

Edit: kann ich mit Irrxml eine Datei auslesen die nicht mit .xml endet, aber trotzdem xml beinhaltet?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IrrXML kompilieren -> Fehler
BeitragVerfasst: 29.11.2008, 22:59 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Project -> Properties -> Linker -> Input -> Additional Dependencies
KA wie die genauen namen in der deutschen version sind.

Und ja kann man. Dateiendungen sind komplett irrelevant und sagen gar nichts über den Dateiinhalt aus.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IrrXML kompilieren -> Fehler
BeitragVerfasst: 30.11.2008, 17:48 
Offline

Registriert: 08.06.2008, 17:27
Beiträge: 9
K Danke,
Nur noch eine Frage: kann es sein das die String-Datentypen im Beispiel nicht mit COUT ausgegeben werden können?

Edit:
bzw lese ich so den inhalt des <music> </music> -tags aus?
Code:
while(xml && xml->read())
  {
    switch(xml->getNodeType())
    {
    case EXN_TEXT: //falls ein Text gelesen wird...

      if (!strcmp("music", xml->getNodeName()))
       music = xml->getNodeData();
       
      break;

    case EXN_ELEMENT: //falls ein Attribut gelesen wird...

       break;
    }
   
   
  }


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IrrXML kompilieren -> Fehler
BeitragVerfasst: 30.11.2008, 19:01 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
std::string sollte eigentlich immer mit cout ausgegeben werden können.

Kommt halt auf das music tag an. Wenn da noch weitere child elemente drin sind, musst du die auslesen.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IrrXML kompilieren -> Fehler
BeitragVerfasst: 30.11.2008, 19:16 
Offline

Registriert: 08.06.2008, 17:27
Beiträge: 9
Okay dann versteh ich nicht wieso der inhalt des music-tags nicht ausgegeben wird...

Hier die map.xml
Code:
<map>
  <music>bgm.mp3</music>
  <heightmap>heightmap.png</heightmap>
  <texturemap>texturemap.png</texturemap>
  <grassmap>grassmap.png</grassmap>
  <grasstexture>grass.png</grasstexture>
  </map>


Hier der C++Code
Code:
#include <irrlicht.h>
#include <iostream>
#include <string>
using namespace irr;
using namespace io; 
using namespace std;



#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#endif

void mapreader();

int main(void)
{
   mapreader();
   
   cout<<"XML gelesen \n";
   
   while(true)
   {
   
   }

}


void mapreader(void)
{
 
  IrrXMLReader* xml = createIrrXMLReader("map.xml");

  string music;
  string heightmap;
  string texturemap;
  string grassmap;
  string grasstexture;

  while(xml && xml->read())
  {
    switch(xml->getNodeType())
    {
    case EXN_TEXT: //falls ein Text gelesen wird...

      if (!strcmp("music", xml->getNodeName()))
       music = xml->getNodeData();
       cout<<music;
      break;

    case EXN_ELEMENT: //falls ein Attribut gelesen wird...

       break;
    }
   cout<<"XML wird gelesen \n";
   
  }

 
  delete xml;

}


Bzw das ist alles erstmal nur zu lernzwecken. Deshalb hauch diese Pseudo-while-schleife^^


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IrrXML kompilieren -> Fehler
BeitragVerfasst: 30.11.2008, 20:05 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Der name des TextNodes ist nicht music, sondern der Name des Parents des TextNodes.

Wenn du aber schon von vornerein weißt, dass du nicht komplexere dateien parsen wirst, dann ist xml aber wohl ein bisschen overkill. INI eignet sich für einfache dateien besser

*ein bisschen werbung mach*
http://sylence.tgp-gaming.de/software/INI-File-Reader/

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: IrrXML kompilieren -> Fehler
BeitragVerfasst: 30.11.2008, 20:17 
Offline

Registriert: 08.06.2008, 17:27
Beiträge: 9
Danke, das sieht schonmal um einiges einfacher aus^^


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 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