![]() |
external const:'Name der DLL'
Moin...
ich habe einige Funktionen die einen Teil-Datensatz formatieren. Wegen der besseren Übersicht und weil man ja nie ausschließen kann, dass User mal etwas anders haben wollen als man das selbst für richtig hält, habe ich diese Funktionen in eine DLL verfrachtet.
Delphi-Quellcode:
Jetzt habe ich aber 'zig mal den String "Formate.dll" stehen. Ich habe natürlich versucht ihn durch eine Konstante zu ersetzen, jedoch ohne Erfolg.
...
function FahrerFormat(gotten: string; referenz: TDatenArray):string; external 'Formate.dll'; ... Gibt es eine Möglichkeit, den String an einer Stelle zentral zu hinterlegen? Es soll ja garnicht variabel - wie auch? - sein... bios denne... |
Re: external const:'Name der DLL'
Und was hat dabei nicht geklappt? :roll:
|
Re: external const:'Name der DLL'
quasi so:
Delphi-Quellcode:
Resultat war:
function FahrerFormat(gotten: string; referenz: TDatenArray):string;
implementation const sowiso: string = 'Formate.dll'; function FahrerFormat(gotten: string; referenz: TDatenArray):string; external sowiso; Zitat:
Gibts da keine Möglichkeit. |
Re: external const:'Name der DLL'
schreibe nur
Delphi-Quellcode:
const sowiso = 'Formate.dll';
|
Re: external const:'Name der DLL'
Moin...
cool, kannte ich noch nicht... geht das auch mit ner Sammlung von Konstanten? Bislang habe ich alle Dateien, die ich statisch brauche, in einem Record stehen... |
Re: external const:'Name der DLL'
Was genau meinst Du mit einer
Zitat:
Du kannst mehrere Constanten definieren, sie müssen nur von einander verschiedene Namen besitzen. Sobald Du jedoch komplette "Konstantensätze" austauschen willst, also von
Delphi-Quellcode:
zu
const1 = '...1';
const2 = '...2';
Delphi-Quellcode:
kommst Du mit dieser Technik nicht weit.
const1 = '***1';
const2 = '***2'; Hier kannst Du dann ggf. Compilerbedingungen einsetzen oder, wenn Du ohnehin irgendwann vorhast, die Dateinamen zur Laufzeit aus einer Konfigurationsdati oä zu laden, die Referenzen mit LoadLibrary und GetProcAddress dynamsisch ermitteln. |
Re: external const:'Name der DLL'
Ja, nee... ist schon klar...
Alles was zusammengehört habe ich halt gern zusammen. etwa so:
Delphi-Quellcode:
Das meinte ich...
type
TProgramFiles = record INI: string; DBConLib: string; ... end; const ProgramFiles : TProgrammFiles = ( INI : 'Programm.ini'; DBConLib : 'DBCnx.dll'; ... ); Ist aber wohl Geschmackssache |
Re: external const:'Name der DLL'
Das Problem mit typisierten Konstanten in Delphi ist das sie als Variablen implementiert sind.
Deshalb die Fehlermeldung. Erschwerend kommt hinzu das string voll dynamisch ist und daher eine heimliche initialization und finalization section zum Programm hinzugefuegt werden in der die globalen String-Variablen alloziiert bzw freigegeben werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 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