![]() |
|
URL dieses Artikels:
Probleme mit Konstanten in einer Library
Frage: Ich habe mit Delphi 8 eine Library erstellt, die eine Unit mit Konstantendeklarationen enthält. Das kann man auch alles wunderbar kompilieren und in den Metadaten steht auch das Richtige drin. Wenn ich nun diese erste Library in einer zweiten Library einbinden und die Konstanten dort nutzen will, erzählt mir Delphi etwas von einem "undeclared identifier". Ich hab schon alles mögliche probiert, allerdings wird das einfach nichts. Hat dazu jemand eine Idee?
Antwort: Die Typprüfung der CLR (Command Language Runtime) von .NET ist viel strenger als das bisher bei Delphi der Fall war. Da einige "lässige" Delphi-Regeln nicht mehr zulässig sind, muss der Delphi-Kompiler an einigen Stellen eine Umverpackung vornehmen. Dies äußert sich darin, dass "merkwürdige" Klassen mit den Bezeichnungen "Unit" auftauchen, die man selbst gar nicht deklariert hat. Die am Ende angehängte Abbildung verdeutlich dies. Das folgende Beispiel demonstriert, wie von einer Library-Assembly heraus auf die Konstanten einer anderen Assembly zugegriffen wird. Dabei bindet eine Windows Forms-Anwendung die zweite Assembly ein, um das Endergebnis testen zu können. Alle drei Module binden die RTL von Delphi 8 über den Verweis auf die Borland-Assembly Borland.Delphi.dll ein, damit es nicht zu Typkollisionen kommt. a) Library 1 deklariert die Konstante library Library1;b) Library 2 greift auf die Konstante aus der Library 1 zu library Library2;c) Die Anwendung greift auf Library 2 zu, um über die Funktion die Konstante aus der Library 1 auszulesen (beide Assembly-DLLs müssen im gleichen Verzeichnis wie die EXE der Windows Forms-Anwendung abgelegt werden) procedure TWinForm2.Button1_Click(sender: System.Object; e: System.EventArgs); begin MessageBox.Show(Library2.Unit.GetData); end;
|
|
© 2002 Software & Support Verlag GmbH. Vervielfältigung
nur mit Genehmigung des Verlags. Alle Markennamen sind in der Regel
eingetragene Warenzeichen der entsprechenden Unternehmen oder Organisationen.
Fragen? ... zum Angebot des Software & Support Verlags: info@entwickler.com ... zu dieser Website: webmaster@entwickler.com |