Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DLL Aufruf (https://www.delphipraxis.net/116439-dll-aufruf.html)

Gehstock 29. Jun 2008 12:23


DLL Aufruf
 
ich versuche grad eine DLL einzubinden die so aufgerufen wird
Delphi-Quellcode:
bool funktion(LPCSTR Benutzername, LPCSTR Firma, LPCSTR Seriennummer);
Das hab ich mit

Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

function CheckSerial(Benutzername,Firma,Seriennummer : String):Boolean;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function CheckSerial(Benutzername,Firma,Seriennummer : String):Boolean;external 'rert.dll';


procedure TForm1.Button1Click(Sender: TObject);
begin
 if CheckSerial(Edit1.Text,Edit2.Text,Edit3.Text) then caption := 'Ok' else caption := 'falsch'
end;

end.
getan

aber das Result bleibt immer False obwohl ich die richtigen Seriennummern eingebe
Benutzername und Firma ist glaub nicht so wichtig weil ich diese beim generieren der DLL nicht angeben musste

hat jemand ne Idee

DeddyH 29. Jun 2008 12:24

Re: DLL Aufruf
 
Nimm mal PChar statt String.

Apollonius 29. Jun 2008 12:25

Re: DLL Aufruf
 
Stimmt der Name? Außerdem hast du in Delphi vergessen, die Aufrufkonvention anzugeben. Versuche as mal mit cdecl, ansonsten mit stdcall.

mkinzler 29. Jun 2008 12:25

Re: DLL Aufruf
 
LPCSTR entspricht auch keinem (Pascal-)String. sondern PCHAR

Gehstock 29. Jun 2008 12:26

Re: DLL Aufruf
 
Wie Peinlich das wars > stdcall

String klappt aber

DeddyH 29. Jun 2008 12:28

Re: DLL Aufruf
 
String klappt? Sicher?

Gehstock 29. Jun 2008 12:30

Re: DLL Aufruf
 
Jo ist die serial Richtig liefert es True, und bei Falscher Serial liefert es False
also alles Super


Danke

Apollonius 29. Jun 2008 12:39

Re: DLL Aufruf
 
String ist eigentlich nur eine Erweiterung von PChar. Der Cast ist auch einfach eine Uminterpretation, sieht man von dem Fall eines leeren Strings ab. Da musst du aufpassen.

lbccaleb 29. Jun 2008 12:58

Re: DLL Aufruf
 
Zitat:

Zitat von Gehstock
String klappt aber

da währe ich mir nicht so sicher!!!

und nochwas, wenn es das sein soll, wonach es aussieht, dann würd ich es auf jedenfall micht so machen wie du, denn für jeden cracker/hacker was auch immer, ist es ein leichtes die funktion zu finden wenn sie schon so einen aussage kräftigen namen hat ;-)
also lieber anders nennen! danach ist das natürlich auch noch unsicher, aber wenigstens nicht mehr mit einem blick im disassembler zu finden ;-)

Gehstock 29. Jun 2008 13:16

Re: DLL Aufruf
 
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

Function CheckSerial(Benutzername, Firma, Seriennummer : PChar) : Boolean ; stdcall;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Procedure Button1Click(Sender: TObject);
  private
    { Private declarations } 
  public
    { Public declarations } 
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 
Function CheckSerial(Benutzername, Firma, Seriennummer : PChar) : Boolean ; external 'Serial.dll';

Procedure TForm1.Button1Click(Sender: TObject);
Begin
if (Length(Edit1.Text)) and (Length(Edit2.Text)) and (Length(Edit3.Text)) > 0 then
  Begin
    if CheckSerial(PChar(Edit1.Text), PChar(Edit2.Text), PChar(Edit3.Text)) then
    Caption := 'Ok' else caption := 'Falsch';
  End else
    ShowMessage('Bitte alle Felder Ausfüllen');
End;


end.

Ok damit ihr Beruhigt seid :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:27 Uhr.
Seite 1 von 2  1 2      

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