Hi Leute.
Habe den Versuch unternommen ein C-Prog nach Delphi umzusetzen,
doch leider scheitere ich solch trivalen Sachen wie GetMem, AllocMem
usw., vieleicht könnt ihr ja helfen; ist vermutlich nur ein Denkfehler.
hier das 'gekürtze Original' aus C:
Code:
...
PCHAR DeviceID = new CHAR[DeviceIDLen + 1];
if (DeviceID)
{
r = Func_GetDeviceID(ThisDevInst,DeviceID,DeviceIDLen + 1,0);
...
printf("%s",DeviceID);
...
}
delete [] DeviceID;
...
und hier in Delphi:
Code:
var
DeviceID : pChar;
S : String;
begin
GetMem(DeviceID, DeviceIDLen + 1);
r := Func_GetDeviceID(ThisDevInst, DeviceID, DeviceIdLen +1, 0);
...
S := StrPas(DeviceID); // Fehler!
S := StrPas(@DeviceID); // Ok
...
FreeMem(DeviceID, DeviceIDLen + 1); <- Läuft nicht, da kann ich machen was ich will
end;
Die Funktion ist wie folgt deklariert und stammt aus dem
DDK für .Net:
Code:
Func_GetDeviceID : function (const dnDevInst : DevInst;
var Buffer : pChar;
const BufferLen : ULONG;
const ulFlags : ULONG): CONFIGRET stdcall;
DevInst und CONFIGRET sind DWORD;
Hat jemand eine Idee an was es liegt?