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/)
-   -   dll einbinden (https://www.delphipraxis.net/130274-dll-einbinden.html)

youuu 5. Mär 2009 20:42


dll einbinden
 
Hi,

Ich habe eine Funktion aus einer Dll in mein Programm eingebunden und zwar so:

Delphi-Quellcode:

function ProzentBerechnung(Hauptwert: string; Nebenwert: string): string; external DLLNAME; stdcall;
doch es kommt eine Fehlermeldung und zwar diese:

[DCC Fehler] test.pas(124): E2037 Deklaration von 'ProzentBerechnung' unterscheidet sich von vorheriger Deklaration


kann mir jemand weiter helfen?


Dazu muss ich sagen ich hatte vorher die Funktion komplett im Programm stehen hab sie nun in eine Dll hinzugefügt und rufe Sie nun so auf allerdings klappt dies nicht wie man an dem Fehler sieht :/

mkinzler 5. Mär 2009 20:43

Re: dll einbinden
 
Wie sieht die Funktionsdeklaration in der Dll bzw. der Export aus?

Die Muhkuh 5. Mär 2009 20:44

Re: dll einbinden
 
Und mit Strings würde ich das ganze nicht machen, da Du sonst die BorlandMM.dll (oder weiß Gott, wie die heißt) mitgeben musst. Mach es lieber mit PChars.

youuu 5. Mär 2009 20:48

Re: dll einbinden
 
Delphi-Quellcode:
function ProzentBerechnung(Hauptwert: string; Nebenwert: string): string; stdcall;

begin
  if Hauptwert = '0' then
    Result:= '0'
  Else
    Result:= FloatToStrF(StrToFloat(Nebenwert)/StrToFloat(Hauptwert)*100,ffFixed,10,2);
end;

exports
  ProzentBerechnung,
  NFak,
  TorProzent;
so siehts es in der dll aus hab die anderen beiden funktionen mal außen vor gelassen

Luckie 5. Mär 2009 20:50

Re: dll einbinden
 
Und wie rufst du sie im Programm auf?

mkinzler 5. Mär 2009 20:51

Re: dll einbinden
 
Sorgst du dafür, das die selbe VCL verwendet wird (ShareMem in Uses)?

sirius 5. Mär 2009 20:53

Re: dll einbinden
 
Zitat:

Deklaration von 'ProzentBerechnung' unterscheidet sich von vorheriger Deklaration
Kann es sein, dass du die Funktion mit selben Namen noch einmal im Hauptprogramm hast?

Und mach mal aus den Strings --> WideStrings

youuu 5. Mär 2009 20:56

Re: dll einbinden
 
Zitat:

Zitat von Luckie
Und wie rufst du sie im Programm auf?

Delphi-Quellcode:
function ProzentBerechnung(Hauptwert: string; Nebenwert: string): string; external DLLNAME; stdcall;
so wird sie im eigentlich Programm aufgerufen.
Im Hauptprogramm ist die Funktion nicht noch einmal deklariert.

mkinzler 5. Mär 2009 21:08

Re: dll einbinden
 
Zitat:

so wird sie im eigentlich Programm aufgerufen.
Nein das ist die Deklaration als Dll-Import, nicht der Aufruf der Funktion

youuu 5. Mär 2009 21:14

Re: dll einbinden
 
Zitat:

Zitat von mkinzler
Zitat:

so wird sie im eigentlich Programm aufgerufen.
Nein das ist die Deklaration als Dll-Import, nicht der Aufruf der Funktion

das meinte ich sorry der aufruf geht so:

Delphi-Quellcode:

ProzentBerechnung("wert1","wert2")


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