Mittlerweile habe ich das Hinzufügen der TLB per idc.exe, als auch per Referenz in der RC-Datei ausprobiert. Auch beim Anmelden mit -regserver soll alles geklappt haben. Die Anwendung ist eine exe und keine DLL. Kann es daran liegen? Ich habe per Google gefunden, dass "Insertable" auf "yes" gesetzt werden muss. Müssen eventuell so noch andere Einstellungen zur Anpassung an Office vorgenommen werden? Kann es am MinGW liegen? Die Exe ist dynamisch gelinkt, liegt aber in einem Verzeichnis mit den nötigen DLLs. Ich habe mittlerweile auch schon eine Installation und Server-Registration unter system32 (Suchpfad) ausprobiert. Auch regsrv32 wurde getestet.
Ich benötige einen Tipp, was noch ausprobiert werden könnte! Danke.
E*
Code: Alles auswählen
charts.pro:
TEMPLATE = app
TARGET = charts
CONFIG += qt qaxserver release warn_on
RC_FILE = application.rc
SOURCES = *.cpp
HEADERS = *.h
main.cpp:
#include <QApplication>
#include <QAxFactory>
#include "MainWidget.h"
QAXFACTORY_BEGIN(
"{E2323DE8-873E-4725-A80C-47E2626A0556}", // Type library ID.
"{558BACA5-36D0-492f-AB78-DF991F111D1D}" // Application ID.
)
QAXCLASS(MainWidget)
QAXFACTORY_END()
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
if (! QAxFactory::isServer()) { // Create and show main window.
MainWidget *w = new MainWidget();
w->setPlainText("Text");
w->resize(400, 200);
w->show();
}
return app.exec();
}
MainWIdget.h:
#ifndef OEG_APP_MISC_CHARTS_H
#define OEG_APP_MISC_CHARTS_H
#include <QString.h>
#include <QAxBindable.h>
#include <QTextEdit.h>
#include <QWidget.h>
class MainWidget : public QTextEdit, public QAxBindable
{
Q_OBJECT
Q_CLASSINFO("ClassID", "{AC1E7EF3-E310-421f-BD97-8EE77F03F9CA}")
Q_CLASSINFO("InterfaceID", "{5676AA5A-B5D4-4412-B166-FF1A9D6DBD2D}")
Q_CLASSINFO("EventsID", "{D2AE041C-DEFE-4648-85E4-B2D59E25A31F}")
Q_CLASSINFO("Version", "1.0")
Q_CLASSINFO("Description", "Charts")
Q_CLASSINFO("ToSuperClass", "MainWidget")
Q_CLASSINFO("StockEvents", "yes")
Q_CLASSINFO("Insertable", "yes")
Q_CLASSINFO("RegisterObject", "yes")
Q_PROPERTY(QString title READ title WRITE setTitle)
public:
MainWidget(QWidget *parent = 0, const char *name = 0);
void setTitle(const QString &title);
QString title() const;
QString m_title;
};
#endif
MainWidget.cpp:
#include <QWidget.h>
#include "MainWidget.h"
MainWidget::MainWidget(QWidget *parent /*=0*/, const char *name /*=0*/)
: QTextEdit(parent)
{
}
void MainWidget::setTitle(const QString &title)
{
m_title = title;
}
QString MainWidget::title() const
{
return m_title;
}