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? Zitieren
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. Zitieren
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. Zitieren
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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.