Formatdefinition GMF-Dateien

  • Ok, danke für die Analyse. Dann scheint etwas mit dem Unicode- oder widechar-Zeichensatz nicht zu stimmen. wide-char ist 2 Bytes lang. Aus Peters GMF-Definition ist nicht zu entnehmen, ob die Länge des Dateinamens in Bytes oder Widechars angegeben wird. Vielleicht war das falsch. Dass zwischen Microsoft und GCC-Compiler bei Widechars Differenzen auftauchen wundert mich nicht, wohl aber, dass bei gleichem Compiler und gleichem Source die Linux-Version und Windows-Version unterschiedlich arbeiten.


    Dass die Dateireihenfolge der PNG's in Windows/Linux verschieden ist, spielt keine Rolle. Das waren ja auch andere Dateisysteme bei der Wildcard-Suche.


    Die restlichen Probleme mit Koordinaten bzw. PNG-Startpositionen sind sicher ein Folgefehler der widechar-Dateinamensproblematik.


    Wenn ich viel Zeit habe, werd ich das genau untersuchen und korrigieren.


    Bis dahin: per Wine sollte zumindest entweder gmf-generate oder GlopusMapFile funktionieren.

  • Die Windows-Version ist korrigiert. Da hatte ich einmal bei der Stringlänge Bytes statt Zeichen angenommen. Also, gmf-generate unter Windows und dieses EXE per wine unter Linux sollte jetzt korrekt sein.


    Bei der native Linux-Version kommt noch ein anderes Problem ins Spiel, da in Unix wide-chars als Unicode UTF-32 angenommen werden, in Windows und GMF aber als UTF-16. Mit der GCC-Option -fshort-wchar lässt sich das 16-Bit-Verhalten erzwingen, aber trotzdem produziert gmf-generate in der Linuxversion Stringfehler. Ich benutze "mbstowcs(mapfilename_unicode,mapfilename,STRSIZE);" zur Umwandlung der Dateinamen von KAL-Files nach GMF. Hat jemand eine bessere Idee?