![]() |
Bei external-Deklaration, konstantenausdruck erwartet
Hallo !
Ich habe in meinem Programmordner ein Verzeichniss namens "PlugIns", dort befinden sich mehrere PlugIn's, soweit keine Probleme (sakura's Tutoral sei :thuimb: ), aber nun muss ich aus einer DLL auf eine funktion aus der Anwenung zugreifen, also hab ich mir ne function geschrieben, die mir den übergeordneten Ordner liefert, aber nun verlangt er bei der Deklaration den vollständigen Pfad als konstante ! Könnt ihr mir weiterhelfen ? |
Re: Bei external-Deklaration, konstantenausdruck erwartet
Moin MrKnogge,
wie wär's denn mit ein klein wenig Sourcecode? ;-) |
Re: Bei external-Deklaration, konstantenausdruck erwartet
Zitat:
Anwenung:
Delphi-Quellcode:
DLL:
...
function GetZahl: PInteger; begin result := @Zahl; end; exports GetZahlUser,
Delphi-Quellcode:
Mit GetITDirectory möchte ich das übergeordnete Verzeichniss herrausbekommen, beispiel:
...
function GetITDirectory(): string; var path: string; begin path := ExtractFilePath(ParamStr(0)); path := Copy(path,0,length(path)-1); while path[length(path)] <> '\' do path := Copy(path,0,length(path)-1); end; function GetZahl: PInteger; external GetITDirectory + MeinProgramm.exe; ... Diese Datei: C:\Programme\MeinProgramm\PlugIns\MeinPlugIn.dll braucht diese: C:\Programme\MeinProgramm\MeinProgramm.exe |
Re: Bei external-Deklaration, konstantenausdruck erwartet
external ist eine Direktive, die zur Kompilierzeit ausgewertet wird. Und dort wird der Code noch nicht ausgeführt. Deshalb können nur konstante Namen für die statische Bindung verwendet werden.
Für dich kommt wohl das [dp="DLL dynamisch"]dynamische Einbinden[/dp] in Frage. |
Re: Bei external-Deklaration, konstantenausdruck erwartet
hm, schade.
Wenn es andersherum gewesen wäre, hätte ich ja beispielsweise 'PlugIns\Plugin.dll' schreiben können, und ich dachte zu sowas gibts auch n gegenteil, aber '..\MeinProgramm.exe' funzt nicht. Danke für den Tip, dann binde ich's eben Dynamisch ein. Sollte jemand noch ne andere Idee haben, immer her damit :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 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