[5.31 x86 Win] PeekS mit Längenangabe und Ascii Null-Term.
Verfasst: 07.08.2015 15:04
Ich habe möglicherweise einen Fehler bei der Verwendung von PeekS und ASCII-Zeichen gefunden.
Wenn man die Längenangabe bei PeekS verwendet, wird ein NULL-Terminierungszeichen mitzurückgegeben.
Bei dem Einbinden einer DLL ist mir das jetzt aufgefallen.
Hier ist ein konstruierter Beispielcode der den Fehler zeigt:
PureBasic 5.31 (x86) und Windows XP SP3 32-Bit
Da ich mich mit PureBasic noch nicht gut auskenne, kann das auch eine Eigenheit von PureBasic sein, aber mir kommt es falsch vor.
Peter
Wenn man die Längenangabe bei PeekS verwendet, wird ein NULL-Terminierungszeichen mitzurückgegeben.
Bei dem Einbinden einer DLL ist mir das jetzt aufgefallen.
Hier ist ein konstruierter Beispielcode der den Fehler zeigt:
Code: Alles auswählen
EnableExplicit
Dim char.a(10)
Define text.s
char(0) = 65
char(1) = 66
char(2) = 67
char(3) = 68
Debug PeekS(@char(0), 20, #PB_Ascii) + "E" ; ERROR: Unicode executable "ABCD" - Ascii executable "ABCDE"
Debug PeekS(@char(0), 8, #PB_Ascii) + "E" ; ERROR: Unicode executable "ABCD" - Ascii executable "ABCDE"
Debug PeekS(@char(0), -1, #PB_Ascii) + "E" ; OK: Unicode executable "ABCDE" - Ascii executable "ABCDE"
text = PeekS(@char(0), 20, #PB_Ascii)
text + "E"
Debug text ; OK: Unicode executable "ABCDE" - Ascii executable "ABCDE"
Da ich mich mit PureBasic noch nicht gut auskenne, kann das auch eine Eigenheit von PureBasic sein, aber mir kommt es falsch vor.
Peter