Nun das mit PByte funkt soweit.
Jetzt ist mir ein Phänomen aufgefallen, was ich mir nicht erklären kann.
Folgender Code funkt (bitte auf die Reihenfolge achten):
Code:
ReadNextPackedFileInfo(Test1->FileHandle,Test2);
bytes = new byte[Test2->FileSizeUncompressed];
ReadPackedFileData(Test1->FileHandle,Test2, bytes);
cout << Test2->FileName; //Wird ausgeben ohne Fehler
cout << endl;
Folgender nicht:
Code:
ReadNextPackedFileInfo(Test1->FileHandle,Test2);
cout << Test2->FileName; //Wird ausgegeben aber danach Fehler
cout << endl;
bytes = new byte[Test2->FileSizeUncompressed];
ReadPackedFileData(Test1->FileHandle,Test2, bytes);
Was hat das mit Reihenfolge zutun?
FileName ist vom Typ PAnsiChar(Delphi) char*(C++) und ist in einem record/struct. Der Speicher wird in der
DLL bei ReadNextPackedFileInfo initalisiert und von der PackDatei gelesen.
P.S. : Gibt es ne Seite wo es erklärt wird worauf man bei Dlls, wo mit mehren Programmiersprachen kompatible sein sollen, achten soll?