Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C dll Aufruf in Delphi (https://www.delphipraxis.net/110776-c-dll-aufruf-delphi.html)

MikeS 24. Mär 2008 18:23


C dll Aufruf in Delphi
 
Hallo zusammen,
kann mit bitte jemand sagen mit welchen Datentypen ich diesen C Dll Aufruf in Delphi umsetzen kann?

Delphi-Quellcode:
long encryptData(char key[], char dec[], char enc[])
Vielen Dank
Mike

mkinzler 24. Mär 2008 18:24

Re: C dll Aufruf in Delphi
 
PChar, PChar, PChar; longint

MikeS 24. Mär 2008 18:32

Re: C dll Aufruf in Delphi
 
Hallo mkinzler,
vielen Dank für die schnelle Antwort. Das mit dem PChar dachte ich mir auch. Habe bisher folgenden Code:

Delphi-Quellcode:
implementation

function encryptData(KeyStr, DecryptedStr, EncryptedStr: PChar) : Integer; external 'EncDec.dll';
und diesen in einer Prozedur:

Delphi-Quellcode:
var resultlength: integer;
    keyStr, decryptedStr, encryptedStr: PChar;//string;//char(25);
begin
      GetMem(keyStr, length(edit1.Text) + 1);
      StrCopy(keyStr, PChar(edit1.Text));
      GetMem(decryptedStr, length(edit2.Text) + 1);
      StrCopy(decryptedStr, PChar(edit2.Text));
      GetMem(encryptedStr, 256);

      resultlength := encryptData(keyStr, decryptedStr, encryptedStr);

      FreeMem(keyStr);
      FreeMem(decryptedStr);
      FreeMem(encryptedStr);
Ich bekomme damit jedoch immer eine Speicherveltzung.

Danke
Mike

mkinzler 24. Mär 2008 18:40

Re: C dll Aufruf in Delphi
 
Wo genau?

MikeS 24. Mär 2008 18:42

Re: C dll Aufruf in Delphi
 
Hallo mkinzler,
der Fehler tritt immer beim Aufruf der Dll auf. Wenn ich diese Zeile auskommentiere dann gibt es keinen Fehler.
Mike

mkinzler 24. Mär 2008 18:46

Re: C dll Aufruf in Delphi
 
Versuch mal:
Delphi-Quellcode:
var ... encryptedStr: string;
...
      resultlength := encryptData(PChar(Edit1.Text), PChar( Edit2.Text), PChar(encryptedStr));

MikeS 24. Mär 2008 18:53

Re: C dll Aufruf in Delphi
 
Hallo,

das hat leider auch nix gebracht. Vielleicht ist es interessant, der dritte Parameter wird in der dll gesetzt.

Mike

toms 24. Mär 2008 18:57

Re: C dll Aufruf in Delphi
 
Zitat:

Zitat von MikeS
Hallo,

das hat leider auch nix gebracht. Vielleicht ist es interessant, der dritte Parameter wird in der dll gesetzt.

Mike

Hast du die Calling Convention beachtet?

mkinzler 24. Mär 2008 18:57

Re: C dll Aufruf in Delphi
 
Ja es ist ein Rückgabewert.

MikeS 24. Mär 2008 19:01

Re: C dll Aufruf in Delphi
 
@toms: was meinst du damit??

@mkinzler: was ändert sich dadurch?

Mike


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf