日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Visual Studio下Qt调用IDL

發布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual Studio下Qt调用IDL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.簡單介紹:

1.ActiveQt包含QAxContainer和QAxServer組件。

  1) QAxContainer允許使用COM對象,并且可以將ActiveX控件嵌入到Qt程序中去。

    QAxContainer是有三個類組成的。分別是:

    QAxObject封裝了COM對象

    QAxWidget封裝了ActiveX控件

    QAxBase是QAxObject和QAxWidget的父類,它實現了封裝COM的核心函數。

    通過調用QAxWidget的property()方法和SetProperty方法可以獲取和設置ActiveX控件的屬性。

    調用ActiveX控件的方法屬性需要COM中的數據類型和Qt中的數據類型的轉換。COM中數據類型和Qt中的數據類型對應的表格:

?    

  2) QAxServer可以將我們寫的Qt控件導出為COM對象或者是ActiveX控件。

  3)一個簡單例子:

    #include <QApplication>#include <QtGui>#include <QAxWidget>int main(int argc, char *argv[]){QApplication a(argc, argv);QAxWidget *flash = new QAxWidget(0,0);flash->resize(500,80);flash->setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}"));flash->dynamicCall("LoadMovie(long,string)",0,"F:/1.swf");flash->show();return a.exec();}

  

?

二.方法

1.首先在windows中注冊idldrawx3.ocx

  進入cmd,輸入以下命令:(注意后面的路徑要帶雙引號)

  regsvr32 ?“C:\Program Files\ITT\IDL\IDL81\bin\bin.x86\idldrawx3.ocx”

?

2.Qt中調用ActiveX:

  1)通過Qt設計師將 QAxWidget放到界面上;

  2)右鍵->設置控件;

  3)選擇系統中注冊的ActiveX控件IDLDrawWidget Control 3.0;

  4)如果工程中沒有添加ActiveQt支持,可以通過Qt->Qt Project Settings->Qt Modules 然后勾選ActiveQt container支持;如果是Qt Creator 工程,則需要在.pro文件中
    添加:?CONFIG??+=?qaxcontainer??

?

3. ActiveX中接口的調用,通過dynamicCall()實現;

  dynamicCall()最多傳遞八個QVariant類型的參數,并且返回類型也是QVariant。

轉載于:https://www.cnblogs.com/striver-zhu/p/4652203.html

總結

以上是生活随笔為你收集整理的Visual Studio下Qt调用IDL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。