AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

external const:'Name der DLL'

Ein Thema von Tonic1024 · begonnen am 4. Nov 2003 · letzter Beitrag vom 4. Nov 2003
Antwort Antwort
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#1

external const:'Name der DLL'

  Alt 4. Nov 2003, 11:47
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:
...
function FahrerFormat(gotten: string; referenz: TDatenArray):string;
  external 'Formate.dll';
...
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.

Gibt es eine Möglichkeit, den String an einer Stelle zentral zu hinterlegen? Es soll ja garnicht variabel - wie auch? - sein...

bios denne...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: external const:'Name der DLL'

  Alt 4. Nov 2003, 11:53
Und was hat dabei nicht geklappt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#3

Re: external const:'Name der DLL'

  Alt 4. Nov 2003, 12:35
quasi so:

Delphi-Quellcode:
function FahrerFormat(gotten: string; referenz: TDatenArray):string;

implementation

const sowiso: string = 'Formate.dll';
 
function FahrerFormat(gotten: string; referenz: TDatenArray):string;
  external sowiso;
Resultat war:

Zitat von compiler:
[Fehler] HauptModul.pas(192): Konstantenausdruck erwartet
Hab mir gedacht, dass der Compiler vielleich zuerst die Funktionen bzw. Dll's nachsieht, und dann erst die Konstanten abfragt...

Gibts da keine Möglichkeit.
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#4

Re: external const:'Name der DLL'

  Alt 4. Nov 2003, 12:45
schreibe nur
const sowiso = 'Formate.dll';
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#5

Re: external const:'Name der DLL'

  Alt 4. Nov 2003, 13:18
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...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#6

Re: external const:'Name der DLL'

  Alt 4. Nov 2003, 13:37
Was genau meinst Du mit einer
Zitat:
Sammlung von Konstanten
?

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:
const1 = '...1';
const2 = '...2';
zu
Delphi-Quellcode:
const1 = '***1';
const2 = '***2';
kommst Du mit dieser Technik nicht weit.

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.
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#7

Re: external const:'Name der DLL'

  Alt 4. Nov 2003, 16:46
Ja, nee... ist schon klar...
Alles was zusammengehört habe ich halt gern zusammen.

etwa so:
Delphi-Quellcode:
type
 TProgramFiles = record
    INI: string;
    DBConLib: string;
    ...
  end;

const
  ProgramFiles : TProgrammFiles =
    (
      INI : 'Programm.ini';
      DBConLib : 'DBCnx.dll';
      ...
    );
Das meinte ich...

Ist aber wohl Geschmackssache
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: external const:'Name der DLL'

  Alt 4. Nov 2003, 17:26
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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