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
:
Verschoben durch User
das Zauberwort heißt "Wrapper-DLL" oder "Wrapper-Klasse" ... einfach mal danach gurgeln.
Hallo erst mal danke. Ich muss leider zugeben mit meine Google Suche bin ich nicht schlauer geworden?
Wäre es nicht schlauer mal das konkrete Problem zu benennen anstatt nach vermeintlichen Lösungen zu suchen?
Mir ist niht klar wie ich aus DLL1 und DLL2 einen einzigen DLL_gesamt kapseln kann?
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?
Hallo, :-) Ich versuche noch mal das Problem zu schildern: Meine Projeckt hat die folgende Architektur: ------- ¦ ¦ ¦ GUI ¦ ¦ ¦ ------- ¦ ¦ ¦ DLL2 (QT_DLL) ¦ ¦ ¦ DLL1 (C++ DLL) Ich möchte aus der obene Architektur so redesignen : ------- ¦ ¦ ¦ GUI ¦ ¦ ¦ ------- ¦ ¦ ¦ ¦ -------------- ¦ ¦ ¦ DLL_Gesamt ¦ ¦ ¦ --------------
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.