Announcement

Collapse
No announcement yet.

Delphi (v5) Komponente in VS.NET nutzbar machen

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

  • Delphi (v5) Komponente in VS.NET nutzbar machen

    Hallo zusammen,

    meine Gesamtapplikation besteht aus einem Verwaltungs- und einem Auswerteprogramm. Der Part "Verwaltung" ist komplett noch in Delphi5 geschrieben, der Part "Auswertung" ist komplett in C# (mit VS.NET) geschrieben.

    Nun gibt es in der Delphi Anwendung bereits eine graphische Komponente (in Form einer DLL), die einen komplett neuen Win32 Dialog anzeigt, und dort ein Kalendersystem zur Verfügung stellt.
    Um nicht alles 2x programmieren zu müssen liegt es nun auf der Hand, diese Komponente in .NET einzubinden. Ist ja eigentlich nur ein Funktionsaufruf. Leider kommt jedesmal der Fehler: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

    Nun zur Frage:
    Ist es überhaupt möglich so etwas zu realisieren?
    Wenn ja, muss bei der DLL etwas spezielles beachtet werden?

    MfG

    Michael Brotrück

  • #2
    > Ist es überhaupt möglich so etwas zu realisieren?

    Sicherlich. Dazu hast du mehrere Möglichkeiten

    a, Umstellen deines D5-codes auf VCL.NET
    b, Bereistellen einer C-Like Dll-Schnittstelle und verwendung der DLL mittels P/Invoke
    c, Erstellen eines COM/ActiveX-Objektes und verwenden dieses

    Ich würde dir Lösung b empfehlen.

    > Wenn ja, muss bei der DLL etwas spezielles beachtet werden?

    Verwende eine C-Kompatible Dll-Schnittstelle. Also nicht mit irgendwelchen Objekten oder Delphi-Strings in der Schnittstelle

    Comment


    • #3
      Danke schonmal für die Antwort...

      Momentan bekomm ich die Fehlermeldung: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
      <br>
      <b>Aktueller Delphi-Code: </b>
      function ShowKalender (StartDate : PChar; PosLeft, PosTop : integer) : ShortString; stdCall;
      <b>Aktueller C#-Code:</b>
      [DllImport("GwKalenderDll.dll", CallingConvention=CallingConvention.StdCall)]
      public static extern string ShowKalender (string StartDate, int PosLeft, int PosTop);
      <br>
      Liegt es evtl. am PChar?
      Könnte auch den kompletten Code der Delphi-Library posten...

      MfG
      Michael Brotrüc

      Comment


      • #4
        Schaue mal, ob dich das weiterbringt:<p>
        <a href="/WebX?13@@.4a87409a">Mark Mauschler "DLL in VS 2005 einbinden ?" 05.12.2005 08:49</a><p>
        A. Kosch hatte hier im Forum auch irgendwo mal gezeigt, wie der Delphi-Export und Net-Import bei Strings aussehen muss, leider finde ich es nicht mehr.<p>
        Mari
        Schöne Grüße, Mario

        Comment

        Working...
        X