AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL Aufruf

Ein Thema von Gehstock · begonnen am 29. Jun 2008 · letzter Beitrag vom 30. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#1

DLL Aufruf

  Alt 29. Jun 2008, 12:23
ich versuche grad eine DLL einzubinden die so aufgerufen wird
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 := 'Okelse 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
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DLL Aufruf

  Alt 29. Jun 2008, 12:24
Nimm mal PChar statt String.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: DLL Aufruf

  Alt 29. Jun 2008, 12:25
Stimmt der Name? Außerdem hast du in Delphi vergessen, die Aufrufkonvention anzugeben. Versuche as mal mit cdecl, ansonsten mit stdcall.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: DLL Aufruf

  Alt 29. Jun 2008, 12:25
LPCSTR entspricht auch keinem (Pascal-)String. sondern PCHAR
Markus Kinzler
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#5

Re: DLL Aufruf

  Alt 29. Jun 2008, 12:26
Wie Peinlich das wars > stdcall

String klappt aber
Marcel
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: DLL Aufruf

  Alt 29. Jun 2008, 12:28
String klappt? Sicher?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#7

Re: DLL Aufruf

  Alt 29. Jun 2008, 12:30
Jo ist die serial Richtig liefert es True, und bei Falscher Serial liefert es False
also alles Super


Danke
Marcel
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: DLL Aufruf

  Alt 29. Jun 2008, 12:39
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: DLL Aufruf

  Alt 29. Jun 2008, 12:58
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
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#10

Re: DLL Aufruf

  Alt 29. Jun 2008, 13:16
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 := 'Okelse caption := 'Falsch';
  End else
    ShowMessage('Bitte alle Felder Ausfüllen');
End;


end.

Ok damit ihr Beruhigt seid
Marcel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.
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