天天看點

QT應用程式設計: Qt資料類型和(ActiveX)COM接口資料類型對應關系

QT調用COM元件方式示例: https://blog.csdn.net/xiaolong1126626497/article/details/113127300?spm=1001.2014.3001.5501 VS2017+QT建立COM元件示例:       https://blog.csdn.net/xiaolong1126626497/article/details/112556866

QT建立的COM元件裡,類裡提供的公共槽函數可以直接被其他語言調用,提供信号可以被其他語言綁定為事件,資料通信非常友善。

比如:  QT如果調用已經注冊的COM元件,可以綁定COM元件提供的信号到自己的指定的槽函數。

       C#如果調用已經注冊的COM元件,可以綁定COM元件提供的信号(事件)  (QT生成的COM元件,信号傳遞出來的參數,在C#裡接收回調函數裡,從事件e結構裡.号可以直接取出資料)。

class ComPluginTest : public QWidget, public QAxBindable
{
    Q_OBJECT
 
public:
    ComPluginTest(QWidget *parent = Q_NULLPTR);
public slots: //槽函數聲明标志
    void pushButton_int_clicked(); //聲明槽函數
    void pushButton_double_clicked(); //聲明槽函數
    void pushButton_string_clicked();
 
    void pushButton_string1_clicked();
    void pushButton_string2_clicked();
    void pushButton_string3_clicked();
    QString VersionNumber();
signals:
    void signal_value_str1(const QString& str); //信号聲明
    void signal_value_str2(QString str); //信号聲明
    void signal_value_str3(QString str); //信号聲明
    void signal_value_string(QString &str); //信号聲明
    void signal_value_int(int); //信号聲明
    void signal_value_double(double); //信号聲明
private:
    Ui::ComPluginTestClass ui;
};      

ActiveQt架構将屬性和公共插槽公開為ActiveX屬性和方法,将信号公開為ActiveX事件,并在Qt資料類型和等效的COM資料類型之間進行轉換。

Qt支援作為COM元件信号和槽函數參數的資料類型如下:

QT應用程式設計: Qt資料類型和(ActiveX)COM接口資料類型對應關系
QT應用程式設計: Qt資料類型和(ActiveX)COM接口資料類型對應關系
QT應用程式設計: Qt資料類型和(ActiveX)COM接口資料類型對應關系