folgendes unter Windows, Qt und VisualStudio:
ich habe eine dll (XfoComCtl42.dll, gehört zum AntennaHouse XSLT Formatter), die ich mit regsvr32.exe XfoComCtl42.dll registriere.
Mit dem Visual Studio funktioniert folgender Code (relevante Passage only):
Code: Alles auswählen
#import "C:\\Programme\\AntennaHouse 4.2\\XfoComCtl42.dll"
#include <QtCore>
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
XFOCOMCTLLib::IXfoObjPtr xfoObj;
CoInitialize(NULL);
if (!SUCCEEDED(xfoObj.CreateInstance("XfoComCtl.XfoObj"))) throw QString("AntennaHouse initialisation failed.");
xfoObj->DocumentURI ="c:\\temp\\test.xml";
xfoObj->StylesheetURI ="c:\\temp\\test.xsl";
xfoObj->OutputFilePath ="c:\\temp\\test.pdf";
xfoObj->Execute();
}
Visual Studio erzeugt mir durch diese "#import" Anweisung automatisch eine .tlh und tli-Datei
Soweit so gut.
Jetzt würde ich das gerne auch mit dem Mingw-Compiler benutzen.
Geht das überhaupt?
Wenn ja:
Wie instanziere ich ein COM-Objekt? Wie greife ich auf dessen Methoden und Eigenschaften zu?
Mein erster Versuch war:
Code: Alles auswählen
#include <QtCore>
#include "xfocomctl42.tlh"
#include "xfocomctl42.tli"
...
Ich habe mal nach "Qt dll com interface" gegoogelt, aber nicht wirklich was gefunden. Vielleicht die falschen Schlagworte?
Danke für Tips, Codeschnipsel und "richtige" Stichwörter zum Suchen, Gérôme