![]() |
DLL Aufruf
ich versuche grad eine DLL einzubinden die so aufgerufen wird
Delphi-Quellcode:
Das hab ich mit
bool funktion(LPCSTR Benutzername, LPCSTR Firma, LPCSTR Seriennummer);
Delphi-Quellcode:
getan
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. 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 |
Re: DLL Aufruf
Nimm mal PChar statt String.
|
Re: DLL Aufruf
Stimmt der Name? Außerdem hast du in Delphi vergessen, die Aufrufkonvention anzugeben. Versuche as mal mit cdecl, ansonsten mit stdcall.
|
Re: DLL Aufruf
LPCSTR entspricht auch keinem (Pascal-)String. sondern PCHAR
|
Re: DLL Aufruf
Wie Peinlich das wars > stdcall
String klappt aber |
Re: DLL Aufruf
String klappt? Sicher?
|
Re: DLL Aufruf
Jo ist die serial Richtig liefert es True, und bei Falscher Serial liefert es False
also alles Super Danke |
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.
|
Re: DLL Aufruf
Zitat:
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 ;-) |
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 14:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz