Hi,
wow, erschlag einen doch mit Quellcode. Könntest du das bitte beim nächsten mal eher anhängen bei der Länge und nur die stellen posten, die wirklich relevant sind? Danke!
Aber bin es mal durchgegangen und sehe da einen Fehler, vielleicht ist der dir ja nur beim schnellen abtippen oder so passiert. Hier
Code:
Public Type SCARD_I2C_CARD_PARAMETERS
ucPageSize As Byte ' Maximal number of bytes that can be written in a successive manner, in a single device select phase.
ucNumberOfAddressBytes As Byte ' Number of bytes used to address the memory in the I2C card.
ulMemorySize As Integer ' The size of the e2prom allocated in the card
End Type
steht für ucPageSize As Byte, hier
Delphi-Quellcode:
type SCARD_I2C_CARD_PARAMETERS=record
ucPageSize: Cardinal;// ' Maximal number of bytes that can be written in a successive manner, in a single device select phase.
ucNumberOfAddressBytes: Byte;// ' Number of bytes used to address the memory in the I2C card.
ulMemorySize: Integer //' The size of the e2prom allocated in the card
end;
ist ein Cardinal draus gewurden. Eins von beiden stimmt entsprechend nicht.
Was die Datentypen angeht, so variiert es etwas, je nachdem ob du VB oder VB.Net benutzt (bzw. das Beispiel). Im "alten" VB ist ein integer 16-Bitig und ein small-Int und ein long 32-bitig und damit ein Integer (Byte ist Byte und auch wirklich unsigned). Unter VB.Net sieht die Sache etwas anders aus, hier wurde ein integer auf 32 bit vergrößert (= Integer) und ein long entspricht einem Int64. Musst du gucken was bei dir der Fall ist.
Gruß Der Unwissende