Announcement

Collapse
No announcement yet.

Parameterübergabe an C - DLL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Parameterübergabe an C - DLL

    Hallo Zusammen,

    ich habe ein Problem bei der Parameterübergabe an eine C-Funktion
    die in eine DLL ausgelagert ist.

    Die Deklaration und Beschreibung mit Daten des Parameters in C sieht wie folgt aus

    int load(uc **buffer, int *len) {
    ...

    memcpy(*buffer, data, len);
    ...
    }

    Eine Speicherreservierung findet in der C-Funktion nicht statt.


    Ich habe den Delphi-Aufruf so gestaltet

    Code:
      
    
      type uc  = char;
            Puc  =^char;
            pPuc =^puc;
    
    .....
    
    
      Buf         : ppuc;
      Data        : string;
      i,res,len         : Integer;
    
    begin
      New(Buf);
      Buf^ := AllocMem(1024);
      len  := 0;
    
      res := load(@Buf, @len);
    
      Data := '';
      for i := 0 to len - 1 do
        Data := Data + pUC(Integer(Pointer(Buf^)) + i)^;
      Dispose(Buf);
     end;
    Leider funktioniert die Datenübergabe an die Variable Buf nicht,
    die Variable len wird aber richtig zurückgegeben. Ich vermute
    es liegt am Zeiger auf Zeiger auf char.

    Hat jemand eine Idee?
Working...
X