Announcement

Collapse
No announcement yet.

E2364 Verweis auf Protected

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

  • E2364 Verweis auf Protected

    hy @ all.

    hab ne dll in c# geschrieben. darin kommt folgendes vor: (vereinfacht)

    public override int writeData(int id)
    {
    ...
    writeNewData(id);
    }

    protected override void writeNewData(id)
    {
    ...
    }

    laesst sich auch kompilieren.

    das UI is auch in C#. jedoch andere dlls sind in delphi.NET geschrieben. beim kompilieren einer delphi-dll hat mein kollege dann den im titel beschriebenen Fehler bekommen.
    (in der delphi-dll wird meine c#-dll referenziert...und benutzt)

    nun hab ich mal alles auf public gesetzt und es hat funktioniert.

    doch das is mir nicht ganz recht. ich hab ja wohl gruende warum ich was protected mach.

    woran kann das liegen. das stoert mich echt gewaltig. liegt das jez wirklich am framework oder doch an was anderem?

    und nochwas: eigentlich hat er die methode gar nicht gebraucht.

    vielleicht weiß wer was da zu tun ist.

    tia
    ciao david

  • #2
    Hallo,
    das Problem liegt an einer Eigenheit von Borland Delphi. Damit der alte Win32-Mechanismus des Compilers/Linkers nicht massiv geändert werden muss, generiert Delphi für jede referenzierte .NET-Assembly eine eigene binäre Typbeschreibung, die nicht auf MSIL basiert (in den <i>dcpil</i>-Dateien werden die Symbol-Informationen aus den Metadaten einer externen .NET-Assembly im Borland-spezifischen Symbol-Format abgelegt). Dabei wird versucht, alles aus der .NET-Assembly auszulesen und in die Delphi-Syntax zu übersetzen. Da es aber zwischen C# und Delphi keine zu 100% identische Schnittmenge gibt, bleibt einiges auf der Strecke. Daher werden auch dann Fehler angezeigt, wenn der kritische Teil der C#-Assembly gar nicht vom Delphi-Programm benötigt wird. Es ist daher "normal", das nicht alle C#-Assemblies eingebunden werden können

    Comment


    • #3
      danke fuer die rasche antwort.

      habs mir fast gedacht, dass das wieder ein problem von delphi und den dcpil-dateien ist. so eine aehnliche diskussion hatten wir ja schon.

      danke nochmal

      Comment

      Working...
      X