Seite 1 von 1

QT Window als DLL + in andere Sprache einbinden

Verfasst: 10. September 2007 19:08
von Baz
Hallo,

ich hab mal eine generelle Frage. Wir möchten ein Programm das momentan in Delphi geschrieben ist, Stück für Stück nach QT portieren. Um das Programm an sich aber weiter nutzen zu können, müssen die in QT programmierten Teile aus dem Hauptprogramm (Delphi) ansprechbar sein. Jetzt wollte ich mal wissen wie das am besten zu lösen ist. Ich muss zugeben, dass ich bisher mit dlls immer so meine liebe Not gehabt habe - irgendwie hab ich nie etwas wirklich Erschöpfendes dazu gefunden (vielleicht lags auch an VS...). Das Headerfile kann ich aus Delphi ja nicht ansprechen, also muss ich einen (mir bekannten dann in Delphi) Einstiegspunkt in der dll anlegen.
Könnte mir jemand mal einfach ein kleines Beispiel mit einem QT Fenster geben, das aus z.B. Delphi aufgerufen werden kann (per dll). Wie ich die dll in Delphi lade weiß ich, es geht mir also nur um den Qt/C++ Teil.

Ich hab diesbezüglich jetzt hier im Forum nichts gefunden, hoffe ich habe keine Thread übersehen :)

Verfasst: 11. September 2007 07:45
von Christian81
Ich denke nicht dass man C++ und delphi so einfach mischen kann. Und schon gar nicht in die Richtung Delphi -> Qt da Qt eine eigene Eventloop hat welche nur durch Q(Core)Application verwaltet wird -> Du kannst nicht einfach ein QWidget von Delphi aus aufrufen und hoffen das es geht.

Verfasst: 11. September 2007 09:56
von Baz
Hm, sowas hatte ich schon befürchtet. Das Delphi C(++) dlls aufruft ist nicht das Problem, aber der Qt Eventloop... Ich müsste es mal umgekehrt probieren, aber es dürfte wohl generell schwierig werden.

Verfasst: 11. September 2007 10:44
von RHBaum
Dlls haben nen C-Interface
die windows API ist in C
Delphi kann standard C dlls ansprechen ....

es spricht also nix dagegen
Das mit der eventloop geht auch, weil du ueber die api auf die loop der Hauptanwendung drauf kommst, per windows api

du kommst nicht auf die QT event loop, aber die steuert auch nur die loop von windows

Das problem ist nur, das es ne ziemliche fuddelei ist, und du viel per hand machen musst. Und die frage, ob der aufwand für hilfskonstrukte dir was bringt, wenn irgendwann soweiso ganz auf qt umsteigst ....

Brauchst halt viel Wissen ueber die winapi und windows fenster und schleifen soweiso. Und deine Dll schnittstellen und die art wie kommuniziert wird, wird alles andere als intuitiv.

Ciao ...