Forum: Win32/Win64 API (native code)
Delphi
by Tonic1024,
28. Sep 2010
Klar hab ich das gesehen. Ist ja quasi auch der einzig sinnvolle Result einer Googlesuche und ich beschäftige mich schon so einige Stunden mit dem Problem.
Aber mit dem Wissen, dass ich mir die letzten 2 Tage in denen ich mich mit diesem Problem beschäftigt hab angeeignet hab, ließt sich der doch ein wenig anders als beim ersten mal. :D
function MCardGetAttrib(
hMCard:THandle;
...
Forum: Win32/Win64 API (native code)
Delphi
by Tonic1024,
28. Sep 2010
Okay, jetzt bin ich vollends verwirrt, denn das deckt sich so garnicht mit dem was ich bisher herausgefunden zu haben glaubte. :P
Okay, size (also pcbAttrLen) wird auf 4 gesetzt. Ich erwarte also 4 Byte, ja? Oder interprätiere ich das falsch? Auch der weiterführende Code (hab den noch nicht gepostet, weil ich den schon übersetzt hab) ließt offenbar die ersten 4 Bytes. Wie geht denn das mit...
Forum: Win32/Win64 API (native code)
Delphi
by Tonic1024,
24. Sep 2010
Mir kommt grad was in den Sinn. Ist dies viellecht das in C durchaus übliche Verfahren einen Buffer und dessen länge zu übergeben und dann den Rückgabewert im selben Buffer (als var also) zurück zu bekommen?
Aus der Doku:
MCARD_FEATURES MCardFeatures;
DWORD dwLen;
LONG lReturn;
lReturn = MCardGetAttrib (hMCard, MCARD_ATTR_FEATURES, (unsigned char *) &MCardFeatures, &dwLen );
Wenn dem...
Forum: Win32/Win64 API (native code)
Delphi
by Tonic1024,
24. Sep 2010
Ja, das kommt dem schon recht nahe was ich da intuitiv, also ohne genau zu wissen was ich tue, draus gemacht hab. Aber egal wie ich den Aufruf mache, ich erhalte immer "Invalid Parameter"
function MCardGetAttrib(hMCardContext: THandle; dwAttrId: Integer; var pbAttr: PByte; var pcbAttrLen: PDWord): Integer; stdcall; external 'MCSCM.DLL';
byArray: array of Byte;
for i := 0 to 99...
Forum: Win32/Win64 API (native code)
Delphi
by Tonic1024,
24. Sep 2010
Hallo...
Ich beiss mir grad die Zähne an ner VB-Übersetzung aus.
Private Declare Function MCardGetAttrib Lib "MCSCM.DLL" (ByVal hMCardContext As Long, ByVal dwAttrId As Long, ByVal pbAttr As String, ByRef pcbAttrLen As Long) As Long
Dim S As String