且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

QT应用编程: Qt数据类型和(ActiveX)COM接口数据类型对应关系

更新时间:2022-09-07 21:20:56

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接口数据类型对应关系