Halli Hallo zusammen,
also ich verzweifle irgendwie langsam. Ich habe in C++ ein Programm geschrieben, dass mir Werte in eine Datei schreibt:
Und jetzt möchte ich diese Werte einfach in einem Javaprogramm wieder auslesen. Dazu habe ich mir folgende Funktion geschrieben:
Das Problem nun ist aber, dass die Ausgabe mir nur Schwachsinn anzeigt
Also genau ist die Ausgabe:
Die 32 stimmt, aber die anderen beiden Zahlen sind Schwachsinn!
Kann mir da jmd. helfen? Liegt der Fehler an dem Javacode, und wenn ja, wo? Oder ist das ein Problem, dass die Werte von C++ und Java unterschiedlich gespeichert und somit falsch interpretiert werden? Wenn ja, wie kann man dies umgehen?
Danke schonmal
LG, Schuri
also ich verzweifle irgendwie langsam. Ich habe in C++ ein Programm geschrieben, dass mir Werte in eine Datei schreibt:
Code:
// Datei leer öffnen
file = fopen(dlg.GetPathName(), "w"); // habe vorher einen FileDialog geöffnet
// Header schreiben
// ChunkID
byteBuffer = 1;
fwrite(&byteBuffer, 1, 1, file);
// Versionsnummer
byteBuffer = 1;
fwrite(&byteBuffer, 1, 1, file);
// Länge des Blocks
byteBuffer = 16 + applicationName.GetLength()*2;
fwrite(&byteBuffer, 1, 1, file);
// Breite der Applikation
shortBuffer = (short)frameWidth;
fwrite(&shortBuffer, 2, 1, file);
// Höhe der Applikation
shortBuffer = (short)frameHeight;
fwrite(&shortBuffer, 2, 1, file);
Und jetzt möchte ich diese Werte einfach in einem Javaprogramm wieder auslesen. Dazu habe ich mir folgende Funktion geschrieben:
Code:
try {
DataInputStream s = new DataInputStream(new FileInputStream("../../saves/test.dgn"));
byte readByte, byteLength;
short readShort, shortLength;
// ChunkID lesen
readByte = s.readByte();
switch (readByte) {
case 1:
// Fileheader
s.skipBytes(1); // Versionsnummer überspringen
byteLength = s.readByte(); // Länge des Chunks
System.out.println(byteLength);
System.out.println(s.readShort());
System.out.println(s.readShort());
break;
}
} catch(IOException e) {
// Abfangen möglicher Fehler
System.out.println(e);
}
Das Problem nun ist aber, dass die Ausgabe mir nur Schwachsinn anzeigt
32
-28671
22530
Die 32 stimmt, aber die anderen beiden Zahlen sind Schwachsinn!
Kann mir da jmd. helfen? Liegt der Fehler an dem Javacode, und wenn ja, wo? Oder ist das ein Problem, dass die Werte von C++ und Java unterschiedlich gespeichert und somit falsch interpretiert werden? Wenn ja, wie kann man dies umgehen?
Danke schonmal
LG, Schuri