Announcement

Collapse
No announcement yet.

Probleme mit Konstanten in Library

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Konstanten in Library

    Hallo,

    ich hab hier ein mysteriöses Problem.

    Ich habe 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 Lib in einer zweiten einbinden will und in der zweiten die Konstanten einsetzen will, erzählt mir Delphi etwas von "undeclared identifier".

    Ich hab schon alles mögliche probiert, allerdings wird das einfach nichts.

    Hat dazu jemand eine Idee?

    Vielen Dank!

    Ciao

    Benjamin Heil

  • #2
    Hallo,

    das folgende Beispiel demonstriert den erfolgreichen Zugriff.

    <b>a) Library 1</b>
    <pre>
    <b>library</b> Library1;
    <br>
    <font color="#003399"><i>{%DelphiDotNetAssemblyCompiler 'c:\programme\gemeinsame dateien\borland shared\bds\shared assemblies\2.0\Borland.Delphi.dll'}</i></font>
    <br>
    <b>uses</b>
    System.Reflection;
    <br>
    [assembly: AssemblyVersion(<font color="#9933CC">'1.0.0.0'</font>)]
    <br>
    <b>const</b>
    cDATA : String = <font color="#9933CC">'Testdaten'</font>;
    <br>
    <b>begin</b>
    <b>end</b>.
    </pre>
    <b>b) Library 2</b> greift auf die Konstante aus der Library 1 zu
    <pre>
    <b>library</b> Library2;
    <br>
    <font color="#003399"><i>{%DelphiDotNetAssemblyCompiler 'c:\programme\gemeinsame dateien\borland shared\bds\shared assemblies\2.0\Borland.Delphi.dll'}</i></font>
    <font color="#003399"><i>{%DelphiDotNetAssemblyCompiler '..\library1\Library1.dll'}</i></font>
    <br>
    <b>uses</b>
    System.Reflection, Library1;
    <br>
    [assembly: AssemblyVersion(<font color="#9933CC">'1.0.0.0'</font>)]
    <br>
    <b>function</b> GetData: <b>String</b>;
    <b>begin</b>
    Result := Library1.<b>Unit</b>.cDATA;
    <b>end</b>;
    <br>
    <b>begin</b>
    <b>end</b>.
    </pre>
    <b>c) Anwendung</b> greift auf Library 2 zu
    <pre>
    <b>procedure</b> TWinForm2.Button1_Click(sender: System.<b>Object</b>; e: System.EventArgs);
    <b>begin</b>
    MessageBox.Show(Library2.<b>Unit</b>.GetData);
    <b>end</b>;
    </pre>
    Siehe dazu auch <i>http://www.derentwickler.de/itr/features/psecom,id,153,nodeid,77.html</i&gt

    Comment

    Working...
    X