Fragen zum Dll-Import bzw. Klasseninstanziierung
Verfasst: 28. März 2011 23:41
Hallo,
ich bin ein absoluter Neuling auf dem Feld von Qt als auch beim Einbinden und Nutzen von Bibliotheken.
Meine Situation ist folgende: Ich habe eine Bibliothek in dll-Form (auch in lib-Form), welche Klassen für die Realisierung einer Client-/Server-Architektur enthält. Weiterhin gibt es ein schon fertiges (MFC-)Programm, welches diese Architektur nutzt. Mein Ziel ist es, diese mit einer QT-basierten GUI zu nutzen.
Ich gehe in kleinen Schritten voran. Mein Ziel ist es erstmal, die dll einzubinden und dann eine Instanz einer darin enthaltenen Klasse zu erstellen.
Ich weiß, daß man die dll statisch bzw. dynamisch einbinden kann. Ich habe beides probiert. Ersteres durch das Setzen des LIB-Pfades in der pro-Datei. Letzteres durch QLibrary-Aufruf. Zumindest das hat funktioniert.
Meine Fragen:
1. Wie kann ich rausfinden, ob ich den LIB-Pfad richtig gesetzt hab und die dll eingebunden ist? Bzw. ist z.B. LIBS += "C:\Users\Megadime\Documents\QT\RTC3D_Test\rtC3Dclient.lib" richtig und ausreichend?
2. Wie kann ich eine Klasse aus der dll instanziieren? Ich habe rumgelesen und viel von dllimport, dllexport usw. sowie Unterschiede zwischen C- bzw. C++-basierten dlls (ich weiß nicht, ob dies der richtige Ausdruck dafür ist) gelesen. Mittlerweile weiß ich eigentlich nicht mehr so richtig, was ich glauben soll bzw. machen soll.
ich bin ein absoluter Neuling auf dem Feld von Qt als auch beim Einbinden und Nutzen von Bibliotheken.
Meine Situation ist folgende: Ich habe eine Bibliothek in dll-Form (auch in lib-Form), welche Klassen für die Realisierung einer Client-/Server-Architektur enthält. Weiterhin gibt es ein schon fertiges (MFC-)Programm, welches diese Architektur nutzt. Mein Ziel ist es, diese mit einer QT-basierten GUI zu nutzen.
Ich gehe in kleinen Schritten voran. Mein Ziel ist es erstmal, die dll einzubinden und dann eine Instanz einer darin enthaltenen Klasse zu erstellen.
Ich weiß, daß man die dll statisch bzw. dynamisch einbinden kann. Ich habe beides probiert. Ersteres durch das Setzen des LIB-Pfades in der pro-Datei. Letzteres durch QLibrary-Aufruf. Zumindest das hat funktioniert.
Meine Fragen:
1. Wie kann ich rausfinden, ob ich den LIB-Pfad richtig gesetzt hab und die dll eingebunden ist? Bzw. ist z.B. LIBS += "C:\Users\Megadime\Documents\QT\RTC3D_Test\rtC3Dclient.lib" richtig und ausreichend?
2. Wie kann ich eine Klasse aus der dll instanziieren? Ich habe rumgelesen und viel von dllimport, dllexport usw. sowie Unterschiede zwischen C- bzw. C++-basierten dlls (ich weiß nicht, ob dies der richtige Ausdruck dafür ist) gelesen. Mittlerweile weiß ich eigentlich nicht mehr so richtig, was ich glauben soll bzw. machen soll.