![]() |
dll einbinden
Hi,
Ich habe eine Funktion aus einer Dll in mein Programm eingebunden und zwar so:
Delphi-Quellcode:
doch es kommt eine Fehlermeldung und zwar diese:function ProzentBerechnung(Hauptwert: string; Nebenwert: string): string; external DLLNAME; stdcall; [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 :/ |
Re: dll einbinden
Wie sieht die Funktionsdeklaration in der Dll bzw. der Export aus?
|
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.
|
Re: dll einbinden
Delphi-Quellcode:
so siehts es in der dll aus hab die anderen beiden funktionen mal außen vor gelassen
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; |
Re: dll einbinden
Und wie rufst du sie im Programm auf?
|
Re: dll einbinden
Sorgst du dafür, das die selbe VCL verwendet wird (ShareMem in Uses)?
|
Re: dll einbinden
Zitat:
Und mach mal aus den Strings --> WideStrings |
Re: dll einbinden
Zitat:
Delphi-Quellcode:
so wird sie im eigentlich Programm aufgerufen.
function ProzentBerechnung(Hauptwert: string; Nebenwert: string): string; external DLLNAME; stdcall;
Im Hauptprogramm ist die Funktion nicht noch einmal deklariert. |
Re: dll einbinden
Zitat:
|
Re: dll einbinden
Zitat:
Delphi-Quellcode:
ProzentBerechnung("wert1","wert2") |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 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