Hattest Du es schon so versucht:mcGeorge hat geschrieben:int G1501_ReadCardString(LPSTR HADName, LPSTR HADNumber, LPSTR VKNR, LPSTR AssurancyNumber, LPSTR AssurancyStatus, LPSTR StatusSuppl, LPSTR Title, LPSTR Forname, LPSTR NameSuppl, LPSTR Surname, LPSTR DateOfBith, LPSTR Street, LPSTR CountryCode, LPSTR PostalCode, LPSTR City, LPSTR ExpiryDate, LPSTR Checksum);
Code: Alles auswählen
ProcedureDLL G1501_ReadCardString(HADName, HADNumber, ..., CheckSum)
PokeS( HADName, "Name" )
PokeS( HADNumber, "Nummer" )
;...
PokeS( CheckSum, "03AF45C8" )
ProcedureReturn 99 ; oder etwas anderes
EndProcedureWICHTIG: An der angegebenen Adresse muss genügend Speicher zur Verfügung stehen. D.h. vor dem Aufruf der DLL-Funktion müssen Strings (bzw. Puffer) mit der entsprechenden Größe erzeugt werden (aber das sollte ja in dem bereits vorhanden Programm ja schon richtig gemacht werden). In VB6 (wie Du oben beschrieben hast) wird zwar der String ByVal übergeben, was aber in Ordnung ist (siehe mein Posting oben).
cu, helpy