DLL Wrapper
-
Hallo alle Zusammen,
ich habe folgende Problem:
QT_DLL in Labview importieren.
Dieses QT_DLL beinhaltet mehrere Klassen, die eine Obere Schicht (GUI) bedient.
Die Architektur, wo der QT_DLL eingesetzt sieht so aus:------------
| |
| GUI |
| |
------------
|
|
|
------------
| |
| QT_DLL |
| |
------------Dieses QT_DLL möchte ich in Labview importieren und daraus die nötige Funktionen exportieren.
Ich habe am anfang der QT_DLL wie es jetzt ist (ohne jegliche Änderung) in Labview versucht zu importieren, könnte ich leider keine Funktionen exportieren.
Labview scheint damit Probleme zu haben, da das QT_DLL in C++ geschrieben dazu kommt noch QT.Meine Idee ist eine DLL_Wrapper zu schreiben.
was meint ihr?
-
Hallo Zusammen
So ist eigentlich die Architektur
------------
GUI
------------
|
|
|
------------
QT_DLL
------------
Ich möchte aus diesem Qt_DLL einen DLL Wrapper erstellen.
-
C++ weiß nicht was eine DLL ist, daher wirst du im C++-Forum nicht so viele sinnvolle Antworten bekommen. Außerdem ist deine Fehlerbeschreibung etwas dürftig. Fehlen die Funktionen in der QT-DLL? Kann Labview keine DLLs importieren? Hat Labview gesagt die Funktion gibt es nicht in der DLL? Möglichst die genaue Fehlermeldung hier reinkopieren.
Was soll die Wrapper-DLL anders machen als die QT-DLL? Dein Architekturbild habe ich überhaupt nicht verstanden. Wenn du die Frage präziser formuliert hast kannst du es bei den Leuten von der WinAPI probieren, die haben mehr Plan von DLLs.
-
nwp3 schrieb:
C++ weiß nicht was eine DLL ist, daher wirst du im C++-Forum nicht so viele sinnvolle Antworten bekommen. Außerdem ist deine Fehlerbeschreibung etwas dürftig. 1) Fehlen die Funktionen in der QT-DLL? 2) Kann Labview keine DLLs importieren? 3) Hat Labview gesagt die Funktion gibt es nicht in der DLL? Möglichst die genaue Fehlermeldung hier reinkopieren.
4)Was soll die Wrapper-DLL anders machen als die QT-DLL? Dein Architekturbild habe ich überhaupt nicht verstanden. Wenn du die Frage präziser formuliert hast kannst du es bei den Leuten von der WinAPI probieren, die haben mehr Plan von DLLs.Danke für die Antwort.
Man kann leider kein png Bild hochladen sonst hätte ich eine Blockschaltbild hochgeladen.
@nwp3- Ja
- Leider kann Labview keine Funktionen importieren
- Ja
Ich kann gar keine Funktionen importieren
4)Was soll die Wrapper-DLL anders machen als die QT-DLL?
Da es die QT_DLL in C++ geschrieben ist, muss ich vielleicht in C umschreiben damit die Funktionen importierbar sind.
Die Architektur sieht so aus:
QT_DLL ist der untere Schicht
GUI ist der obere Schicht
also ganz unten ist der QT_DLL und der obere Schicht ist das GUI
-
Zusammengefasst: Du willst eine Wrapper-DLL schreiben um Funktionen aus einer anderen DLL zu benutzen die es in der anderen DLL gar nicht gibt. Und nachdem dir das gelungen ist kann Labview die Wrapper-DLL auch gar nicht einbinden. Hört sich nicht nach einem gutem Plan an.
Vielleicht meintest du etwas anderes: Die Funktionen gibt es sehr wohl in der QT-DLL und Labview kann auch DLLs einbinden, findet aber die angegebenen Funktionen nicht in der angegebenen DLL.
Meine Vermutung ist, dass wegen des Name Manglings die Funktionen einen anderen Namen haben als du denkst und wenn du den korrekten Namen angibst, dass es dann ohne Wrapper läuft, zum Beispiel "_ZQTmachMalv" statt "QTmachMal".
Ich habe verstanden, dass die QT_DLL von der QT-GUI benutzt wird. Ich habe nicht verstanden warum das relevant ist.
-
Hallo,
du wirst eine Wrapper-DLL mit einem C-Interface erstellen müssen, da LabView dies nicht anders unterstützt, s. z.B.
C++ Library einbinden
C++ Dll in Labview einbinden
-
nwp3 schrieb:
Ich habe verstanden, dass die QT_DLL von der QT-GUI benutzt wird. Ich habe nicht verstanden warum das relevant ist.
Relevant ist es nicht da hast du recht.
-
nwp3 schrieb:
Vielleicht meintest du etwas anderes: Die Funktionen gibt es sehr wohl in der QT-DLL und Labview kann auch DLLs einbinden, findet aber die angegebenen Funktionen nicht in der angegebenen DLL.
.Was ich meine:Die Funktionen gibt es sehr wohl in der QT-DLL und Labview kann nicht DLLs einbinden.
Ursprünglich das ganze ist VS2008 Projekt und wir wollen gerne mit der Stand was jetzt ist QT_DLL in Labview einbinden. Das ist der Plan.
Mit Labview zu arbeiten war damals nicht vorgesehen.
-
Samuel_gast schrieb:
Labview kann nicht DLLs einbinden.
Dann verstehe ich nicht was du mit einem DLL-Wrapper willst.
-
nwp3 schrieb:
Samuel_gast schrieb:
Labview kann nicht DLLs einbinden.
Dann verstehe ich nicht was du mit einem DLL-Wrapper willst.
Mit dem DLL_wrapper möchte die Funktionen in Labview importieren.
Mit dem jetzigen QT_DLL ist leider nicht möglich weil es in C++ geschrieben (Klassen mit komplexen Datenstrukturen)und das ist meine Frage, worauf soll ich bei DLL_Wrapper achten ?
-
Das steht doch in meinen Links...