Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Prozedureinsprungpunkt beim statischen Einbinden n. gefunden (https://www.delphipraxis.net/114229-prozedureinsprungpunkt-beim-statischen-einbinden-n-gefunden.html)

Rociel 21. Mai 2008 20:47


Prozedureinsprungpunkt beim statischen Einbinden n. gefunden
 
Nabend liebe DP'ler

ich programmiere gerade wieder in bisschen an meinem DS-Tool weiter, und habe mir gearde zur Aufgabe gemacht, das programm etwas dynamischer zu gestalten. Dadurch kann ich später das Programm dann leichter aktualisieren wenn bei DieStämme neue Server hinzukommen, bzw. neue Länder.

So, nun gut zuerst habe ich folgendes versucht:

in der dll:
Delphi-Quellcode:
function myDSID:PChar;stdcall;
...
begin
...
end;

exports
  myDSID;
und in der exe:
Delphi-Quellcode:
implementation

...

function myDSID:PChar; stdcall;
external 'func.dll';

{$R *.dfm}
das klappt auch wunderbar, so nun will ich in der dll noch mehr Funktionen unterbringen, was dann knapp so aussieht:
Delphi-Quellcode:
function myDSID:PChar;stdcall;
...
begin
...
end;

function myLaender:Byte;stdcall;
begin
...
end;

function myLand(i:byte):PChar;stdcall;
begin
...
end;

exports
  myDSID,
  myLaender,
  myLand;
und in der exe:
Delphi-Quellcode:
implementation
...

function myDSID:PChar; stdcall;
external;
function myLaender:Byte; stdcall;
external;
function myLand(i:byte):PChar; stdcall;
external;

{$R *.dfm}
nun mag ich die exe ausführen, und Delphi bleibt bei einem CPU-Fenster hängen, ich lass das Programm weiterlaufen und bekam ne Accessviolation, mit der ich nix anfangen konnte, später habe ich das Programm dann außerhalb von Delphi nochmal aufgerufen, und da kam dann die Fehlermeldung ala "Prozedureinsprungpunkt für Funktion myLand nicht gefunden"

naja dann habe ich noch folgendes ausprobiert(zuerst mit den Indizes dann mit name):

im exports Teil der DLL:
Delphi-Quellcode:
exports
  myDSID index 1 name 'myDSID',
  myLaender index 2 name 'myLaender',
  myLand index 3 name 'myLand';
und in der exe entsprechend

Delphi-Quellcode:
function myDSID:PChar; stdcall;
external 'func.dll' index 1 name 'myDSID';
function myLaender:Byte; stdcall;
external 'func.dll' index 2 name 'myLaender';
function myLand(i:byte):PChar; stdcall;
external 'func.dll' index 3 name 'myLand';
ich weiß langsam nicht mehr weiter... wäre nett, wenn mich jemand mal mit nem Zaunpfahl auf meinen Fehler verweisen könnte ;)

zumal es ja am Anfang schon ging...

vielen Dank schon mal im Vorraus =)

lg Rociel

SirThornberry 21. Mai 2008 20:48

Re: Prozedureinsprungpunkt beim statischen Einbinden n. gefu
 
wenn du im cpu-fenster hängen bleibst wird wohl eine Funktion in der DLL nicht gefunden und somit geht das "statiche" schief

Rociel 21. Mai 2008 20:49

Re: Prozedureinsprungpunkt beim statischen Einbinden n. gefu
 
ok, entschuldigt bitte, mein Fehler, ich hatte ganz vergessen dass ich die dll in einem Unterordner liegen habe, und den Pfad nicht angepasst hab, aber in dem Ordner der exe noch eine alte Version der dll lag.

Das Topic kann also gelöscht werden.

sry nochmal :duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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