CArchive - Wie sieht das Format dahinter aus?
-
Hallo zusammen,
Ich muss ein paar Daten portieren, welche früher per
CArchivein ein File geschrieben wurden. Daher sollte ich das Format von solchen Archiven wissen, bzw. wie sie genau aufgebaut sind. Ich weiss was für Daten in welcher Reihenfolge drinstehen. Daher fehlt mir nur noch jeweils das Format.Soweit ich weiss, leitet
CArchivedie Speicherung weiter anCObject, bzw. die davon abgeleitete Klasse. Das seh ich auch im Code, welcher die Daten in das File schreibt. Nur weiss ich nicht, was inCArchiveselber zum Teil passiert und wie zum Beispiel einCStringoderCSize, usw. usf gespeichert werden.Bisher konnte ich schon mal ein paar Dinge per Hex Editor herausfinden, aber ob das immer so ist oder ob gewisse Dinge von Bedingungen abhängen, geht daraus natürlich nicht hervor. Bisher herausgefunden:
- Big-EndianCSizeeinfach 2x int -> 4 + 4 BytesCString1 Byte für die Länge, danach der String (aber was ist wenn derCStringlängere Strings als 255 Zeichen gespeichert hat?)int,double,float- 4, 8, 4 Bytes BE
Gäbe es dazu vielleicht irgendwo eine Tabelle? MSDN? Gefunden habe ich nichts sinnvolles. Oder muss ich da bei jeder Klasse einzeln schauen gehen?
Grüssli
-
Da ich das Zeug in .Net einlesen muss, habe ich hier die mehr oder weniger perfekten Artikel gefunden:
http://www.codeproject.com/KB/cs/MFC_Serialization.aspx
http://www.codeproject.com/KB/cs/MFC_Serialization2.aspxAber die dürften auch für Leute interessant sein, welche nicht in .Net einlesen wollen.
Grüssli