Hallo alle Zusammen,
ich habe 2 DLL (DLL1--> QT und DLL2--> C++) File, die ich gerne in einen
einzigen DLL File kapseln möchte.
Warum ich das mache?
Ich möchte die beide DLL in Labview importieren klappt leider nur bei
erste DLL (c++ seite) und bei der andere QT_DLL hat nur Probleme.
Ich habe so gedacht, wenn ich die beide DLL in einem einzigen DLL File
kapsele, dann kann die QT unbequämlichkeit umgehen.
ich weiss es nicht in voraus, ob es überhaupt funktionieren wird aber
versuchen kann ich doch.
Für jeden Vorschlag bin ich dankbar.
Danke in Voraus
Niko
Läubi .. schrieb:> Wäre es nicht schlauer mal das konkrete Problem zu benennen anstatt nach> vermeintlichen Lösungen zu suchen?
Hat er schon gemacht:
Beitrag "C++ DLL in Labview einbinden"
Und wie es aussieht nicht hinbekommen. Jetzt scheint die Strategie zu
sein eine noch kompliziertere Lösung zu suchen.
Niko schrieb:> Mir ist niht klar wie ich aus DLL1 und DLL2 einen einzigen DLL_gesamt> kapseln kann?
Ich meinte her wieso eine DLL geht, zwei jedoch nicht und warum du
vermutest das es mit einer "großen" klappt...
@Ich habe so gedacht, wenn ich beide DLL(C++_DLL und QT_DLL) File in
einem DLL_gesamt einkapsele dann kann ich die Problematik, die durch den
QT (Signal und Slot) beim Labview problemfrei exportieren.
Das ist eigentlich nur theoretisch.
Danke in voraus
Niko schrieb:> @Ich habe so gedacht, wenn ich beide DLL(C++_DLL und QT_DLL) File in> einem DLL_gesamt einkapsele dann kann ich die Problematik, die durch den> QT (Signal und Slot) beim Labview problemfrei exportieren.
Versteht irgendjemand, was Niko uns damit zu sagen versucht?
Weder hast du beschrieben, was nun das Problem mit Signals und Slots ist
(die tauchen in deinem Monster-ASCII-Art gar nicht auf), noch ist das
überhaupt dein Problem.
Das ist dein (ziemlich bescheuerter - sorry!) Lösungsansatz.
Wenn du dein Problem beschreibst, stehen die Chancen gut, daß es richtig
gelöst werden kann.
Niko schrieb:> Ich versuche noch mal das Problem zu schildern:
Das ist nicht das Problem, das ist Dein Versuch, das völlig
andersgelagerte Problem zu "lösen".
Das hier ist das, was Du bislang zum eigentlichen Problem geschrieben
hast:
> Ich möchte die beide DLL in Labview importieren klappt leider nur bei> erste DLL (c++ seite) und bei der andere QT_DLL hat nur Probleme.
Michael schrieb:> Das ist dein (ziemlich bescheuerter - sorry!) Lösungsansatz.
:-)
Wenn ich die (QT_DLL) mit Labview exportiere könnte es keine Methode
exportiert werden und deswegen ist die obere Lösungsansatz, wenn es
bescheuert ist.
Niko schrieb:> Wenn ich die (QT_DLL) mit Labview exportiere könnte es keine Methode> exportiert werden und deswegen ist die obere Lösungsansatz, wenn es> bescheuert ist.
Kannst Du wenigstens versuchen, das noch mal zu formulieren?
Verwechselst Du exportieren und importieren?
Rufus Τ. Firefly schrieb:> Kannst Du wenigstens versuchen, das noch mal zu formulieren?>> Verwechselst Du exportieren und importieren?
:-)
Sorry
Wenn ich die (QT_DLL) mit Labview importiere könnte es keine Methode
exportiert werden und deswegen ist die obere Lösungsansatz, wenn es
bescheuert ist.
Niko schrieb:> Wenn ich die (QT_DLL) mit Labview importiere könnte es keine Methode> exportiert werden und deswegen ist die obere Lösungsansatz, wenn es> bescheuert ist.
Das ist genauso beschissen formuliert.
"könnte es keine Methode exportiert werden" ist völlig ungrammatisch,
und man kann auch mit viel gutem Willen nicht erraten, was das bedeuten
soll.
Fang vielleicht noch weiter vorne an.
Warum willst Du eine Qt-Dll in LabView importieren? Wozu soll das gut
sein? Willst Du direkt aus LabView Qt-Funktionen aufrufen? Wenn ja:
Warum bloß?
Oder ist es so, daß Deine andere DLL QT-Funktionen aufruft? Dann
sollte die Qt-DLL für LabView keinerlei Rolle spielen, sie muss nur an
der richtigen Stelle vorhanden sein, damit sie bei Gebrauch von Deiner
DLL bzw. dem windows-eigenen Programmlader geladen werden kann.
Rufus Τ. Firefly schrieb:> Warum willst Du eine Qt-Dll in LabView importieren?
Da ich bestimmte Funktionen in Labview exportieren möchte.
Rufus Τ. Firefly schrieb:> Wozu soll das gut> sein?
Ob das gut ist, weiss ich nicht.
Wir wollen zu unsere Kunden einen Labview Schnittstelle bieten.
Rufus Τ. Firefly schrieb:> Willst Du direkt aus LabView Qt-Funktionen aufrufen?
ja
Rufus Τ. Firefly schrieb:> Warum bloß?
Weil ich keine andere Möglichkeit habe.
Da das DLL einen QT_DLL ist.
Niko schrieb:> Wir wollen zu unsere Kunden einen Labview Schnittstelle bieten.
Versuch doch bitte nochmal, Dein Anliegen zu formulieren.
Was willst Du?
Willst Du eine DLL schreiben, die (aus welchen Gründen auch immer)
Qt-Funktionalität nutzt (also selbst eine Qt-DLL verwendet), damit
andere Leute diese DLL wiederum mit LabView verwenden können?
Oder willst Du mit LabView selbst irgendwelche Qt-Funktionen
verwenden?
Du machst es einem wirklich schwer, zu verstehen, was Du sagen möchtest.
Und was genau hast Du bereits unternommen, und an welcher Stelle genau
hakt es?
Gibt es Fehlermeldungen? Wenn ja, an welcher Stelle?
und versuch auch bitte klar zwischen importieren und exportieren zu
unterscheiden! Bislang scheint es so, als würdest Du die Begriffe immer
bunt mischen und das erleichtert das Verständnis auch nicht unbedingt!
Niko schrieb:> Wir wollen zu unsere Kunden einen Labview Schnittstelle bieten.>> Rufus Τ. Firefly schrieb:>> Willst Du direkt aus LabView Qt-Funktionen aufrufen?>> ja>> Rufus Τ. Firefly schrieb:>> Warum bloß?>> Weil ich keine andere Möglichkeit habe.> Da das DLL einen QT_DLL ist.
Vielleicht liege ich ja völlig falsch, aber ist nicht für den Benutzer
Labview die GUI, die er benutzt? Wer sagt denn, dass man da Funktionen
einer anderen GUI reinmischen kann?
doedel schrieb:> das Zauberwort heißt "Wrapper-DLL" oder "Wrapper-Klasse"
Das ist nicht sein Problem, sofern man dazu überhaupt was Sicheres sagen
kann. Wenn seine Zeichnung stimmt, sieht das Hauptprogramm die Qt-DLL
garnicht, die C++-DLL ist sozusagen schon der Wrapper. Eigentlich will
er die DLLs nur zusammenlinken, so dass die C++-Aufrufe innerhalb der
DLL die Qt-Funktionen aufrufen. Das Interface zum Hauptprogramm ändert
sich garnicht.
Nach seiner Formulierungskunst kann aber auch alles ganz anders sein.
Georg
Hallo zusammen,
Hier ist mein Anliegen (seh Anhang):
Rufus Τ. Firefly schrieb:> Willst Du eine DLL schreiben, die (aus welchen Gründen auch immer)> Qt-Funktionalität nutzt (also selbst eine Qt-DLL verwendet), damit> andere Leute diese DLL wiederum mit LabView verwenden können?>
Ich möchte eine DLL schreiben, damit andere Leute diese DLL wiederum mit
LabView verwenden können
> Oder willst Du mit LabView selbst irgendwelche Qt-Funktionen> verwenden?
nein.
Ich möchte nicht eine reine QT-Funktionen verwenden.
Rufus Τ. Firefly schrieb:> Und was genau hast Du bereits unternommen, und an welcher Stelle genau> hakt es?>
Ich habe versucht DLL2 in Labview zu importieren.
Beim import, wird keine Funktionen exportiert.
problem ist : DLL2 ist in C++ geschrieben.
Es beinhaltet klassen, komplizierte Datenstrukturen..., was vielleicht
nicht Benutzerfreundlich für Labview.
> Gibt es Fehlermeldungen? Wenn ja, an welcher Stelle?
Wie soll ich am besten vorgehen (mit Labview habe ich selber keine
Erfahrung)?
Soll ich als erste die beide DLL(DLL1 und DLL2) in einem einzigen DLL
kapseln?
Warum ich das so mache?
@ die beide DLL hängen von einander ab. das heisst wenn ich irgend eine
Funktionen von DLL2 aufrufe(ZB: Strommessung),wird DLL1 aufjedenfall
gebraucht(Befehl wird zu PICBorad weitergeleitet).
Niko schrieb:> Ich habe versucht DLL2 in Labview zu importieren.
Wozu?
Wenn alles für LabView relevante in DLL1 enthalten ist, und DLL1
Funktionen aus DLL2 nutzt, ist es überhaupt nicht erforderlich, DLL2 in
LabView zu importieren.
Was du machen sollst?
Formuliere klar und verständlich, was du willst.
In deiner Muttersprache.
Gib das bei Google Translate ein.
Poste das Ergebnis hier.
Rufus Τ. Firefly schrieb:> Wozu?>> Wenn alles für LabView relevante in DLL1 enthalten ist, und DLL1> Funktionen aus DLL2 nutzt, ist es überhaupt nicht erforderlich, DLL2 in> LabView zu importieren
DLL1 ist der untere Schicht und die Funktionen, die ich brauche befinden
sich in DLL2.
Niko schrieb:> Ich möchte eine DLL schreiben, damit andere Leute diese DLL wiederum mit> LabView verwenden können
Dann solltest du dir die Doku von LabView herholen und schauen welche
Konventionen Labview benötigt.
Als zweiten Schritt solltest du dann ein Minimal-Beispiel erstellen,
welches z.B. eine Funktion hat welche eine feste Zahl zurückliefert.
Dieses dann in Labview Importieren und schauen das alles klappt wie
gewünscht.
DANN kann man langsam beginnne zu überlegen, wie man die bestehnde
Struktur in sinnvollerweise über Labview bereitstellt, das kann dan im
Zweifel auch eine "DLL3" sein welche dedizierte Konverter enthalten
welches "deine Welt" in die "LabView Welt" übersetzt und INTERN (also
ohne das Labview was davon mitbekommt) DLL1+DLL2 benutzt.