Thema: Delphi C Dll benutzen mit Char*

Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

C Dll benutzen mit Char*

  Alt 4. Okt 2010, 08:03
Moin !

Ich habe hier eine C DLL die ich benutzen müsste. Darin gibt es diese Funktion:
Code:
int EncryptPassword(char* password, char* crypted_password, int bufsize)
In Delphi habe ich nun einen Funktionsprototypen definiert:
Delphi-Quellcode:
 type
   TDLLFunc = function(pass: PChar; passCry: PChar; lenBuffer: Integer): Integer; stdcall;
var
   DLLFunc: TDLLFunc
Die DLL wird dann dynamisch geladen und DLLFunc erhält den Pointer auf die Funktion in der DLL (@DLLFunc := GetProcAddress(DLLHandle, 'EncryptPassword'). Das klappt auch.

Nun versuche ich die Funktion zu benutzen und ich denke ich habe da noch irgendeinen Bug drin.
Nebenbei ... Die Funktion bekommt einen String und liefert einen verschlüsselten String zurück.

Das ist mein derzeitiger Versuch:
Delphi-Quellcode:
var
     Buffer : PChar;
     test : PChar;
begin
        GetMem(Buffer, 20);
        GetMem(test, 4);
        test := PChar('!!!!');
        len := DLLFunc(@test, @Buffer, 20);
        ShowMessage(PChar(Buffer));
...
Nur leider kommt da nix brauchbares bei raus. Ich denke mal es liegt an meiner Nutzung von PChar.

Kann mir ggf. jemand einen Tip geben was ich hier anpassen/ergänzen muss?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat