AGB  ·  Datenschutz  ·  Impressum  







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

VCL Form in DLL in C# aufrufen

Ein Thema von Razor03 · begonnen am 15. Mai 2014 · letzter Beitrag vom 19. Mai 2014
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.645 Beiträge
 
#1

AW: VCL Form in DLL in C# aufrufen

  Alt 15. Mai 2014, 16:55
Ich weiß dass es Möglichkeiten wie Hydra oder Crosstalk gibt. Allerdings möchte ich es erstmal ohne diese kostenpflichtigen Tools probieren.
Du brauchst COM-Interop bzw. P/Invoke. Und Zeit. Viel Zeit, bis Du das sauber hast.
Zeit, die mit einem normalen Stundensatz verrechnet deutlich mehr kosten wird als Hydra.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.746 Beiträge
 
Delphi 12 Athens
 
#2

AW: VCL Form in DLL in C# aufrufen

  Alt 15. Mai 2014, 17:00
Die VCL ist nunmal nicht darauf ausgelegt von einer fremden Messagebehandlung behandelt zu werden.

In der Messagebehandlung vom Delphi sind noch paar Dinge drin, welche die Messages sozusagen vorverarbeiten und die Fehlen dann schonmal.
uvm.


Und dann noch die Sache mit dem .Net und Native .... so ganz vertragen die sich nunmal nicht.

Vielleicht ist es einfacher das als eigenständiges Delphi-Programm zu machen, die Teile via IPC miteinander reden zu lassen und nur das externe VCL-Fenster einzubinden (vielleicht auch über den Parent in ein anderes Fenster reinhängen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Mai 2014 um 17:09 Uhr)
  Mit Zitat antworten Zitat
Razor03

Registriert seit: 1. Jul 2005
10 Beiträge
 
#3

AW: VCL Form in DLL in C# aufrufen

  Alt 19. Mai 2014, 08:50
Danke für die Antworten.

Ich konnte mittlerweile das Problem eingrenzen. Sobald ich ein cxGrid von DevExpress auf die Delphi Form packe und die Form in der DLL kapsle kommt es zu der Exception in der C# Anwendung. Egal ob Winforms oder WPF Form. Mit anderen Komponenten scheint es zu laufen.
Habe es mal probiert sharemem einzubinden..ging allerdings auch nicht.

Ich bin derzeit am ausloten der Möglichkeiten, um die beste Lösung zu finden.
Dass es mit dem Messagehandling Probleme geben wird und dass ich per IPC Daten austauschen muss, damit habe ich bereits gerechnet.

Die Idee die Fenster aus der Delphi Anwendung in die C# Anwendung zu "übernehmen" hatte ich auch schon..muss ich mal testen wie sich das so verhält.

COM Interop:
In .Net kann ich ja einfach einen Haken im Projekt setzen "Register for COM interop". Gibt es in Delphi etwas vergleichbares?
  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 06:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz