Einzelnen Beitrag anzeigen

Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

New von C anders als bei Delphi?

  Alt 28. Dez 2003, 11:25
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?
  Mit Zitat antworten Zitat