Narf! Geschrieben 3. November 2011 Geschrieben 3. November 2011 Hallo an alle, ich habe jetzt einen zweiten XMLContentHandler:SAXContentHandlerImpl im Programm. Mit nur einem ist alles prima. Hier passiert der Fehler. CreateInstance() erwartet keine Argumente. XMLContentHandler2 *pXMLContent=XMLContentHandler2::CreateInstance(); Das Verrückte dabei ist, wenn ich die beiden Include-Zeilen der XMLContentHandler vertausche, ist jeweils der zuletzt genannte nicht bekannt. Ich habe mich an die Implementierungsvorgaben gehalten. Beide XMLContentHandler sind von SaxContentHandlerImpl abgeleitet. Muss ich beim zweiten etwas weglassen, damit es geht?
Klotzkopp Geschrieben 3. November 2011 Geschrieben 3. November 2011 Das Verrückte dabei ist, wenn ich die beiden Include-Zeilen der XMLContentHandler vertausche, ist jeweils der zuletzt genannte nicht bekannt.Die Header binden sich nicht zufällig gegenseitig ein? Das funktioniert nicht.
Narf! Geschrieben 4. November 2011 Autor Geschrieben 4. November 2011 Das war das Problem: #if !defined(AFX_XMLCONTENTHANDLER_H__E0CFBC18_CCC1_42F3_B0A4_B03331AB9693__INCLUDED_) #define AFX_XMLCONTENTHANDLER_H__E0CFBC18_CCC1_42F3_B0A4_B03331AB9693__INCLUDED_ #endif //#if !defined(AFX_XMLCONTENTHANDLER_H__E0CFBC18_CCC1_42F3_B0A4_B03331AB9693__INCLUDED_) Das darf nur einmal vorkommen, stand aber in jeder XMLContentHandler.h-Datei. Ich habe das jetzt in die SAXContentHandlerImpl.h-Datei gechrieben. Die wird ja in jeder XMLContentHandler.h-Datei includiert.
Klotzkopp Geschrieben 4. November 2011 Geschrieben 4. November 2011 Das ist ein Include-Guard. Er verhindert, dass dieselbe Headerdatei mehr als einmal in eine .cpp-Datei eingebunden wird. So etwas gehört in jede Headerdatei (wenn du es also aus einer Headerdatei entfernt hast, war das ein Fehler), allerdings muss das benutzte Präprozessorsymbol in jeder Datei anders sein.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden