Ich habe eine Binärdatei mit 255 Bytes.
Die möchte ich bitte einlesen als file und über einen pointer+offset den ich zu eine dll schicke auslesen.
Es funktioniert soweit aber es wird eine total anderer Integerwert ausgegeben statt ein Byte bei verschiedenen Offset..
Wenn ich bb=dl.adresse(pp,1) eingebe wird der richtige Wert ausgegeben , bei bb=dl.adresse(pp,0) kommt 65345 raus und bei
bb=dl.adresse(pp,4) kommt wieder der richtige Wert.
Liegt es hier dran :
pp=pointer(create_string_buffer(s,laenge))
Wie muss es sonst bitte heißen für eine Binärdatei ?
Danke.
Gruss
Die py-datei:
Code: Alles auswählen
import os
import struct
from ctypes import *
dl = cdll.LoadLibrary("f:/python27/pebi-py1/py.dll")
laenge=os.path.getsize("f:/python27/daten/255zufall_daten.dat")
print
print laenge," byte"
print
f = open("f:/python27/daten/255zufall_daten.dat",'rb')
s = f.read(laenge)
pp=pointer(create_string_buffer(s,laenge))
bb=dl.adresse(pp,1) >>>>>>>>>>>>>>>>>>> 1 ist der Offset zum Pointer
print bb
Code: Alles auswählen
ProcedureCDLL.c adresse(adr.l,stelle.l) >>>>>>>>>>>>>>> stelle ist der Offset der übergeben wird
wertl.c = PeekB(adr+stelle)
ProcedureReturn wertl.c
EndProcedure