vs2015 配置qt5.9.3 編寫 activex 程序 ocx 程序

一  環境配置部分的問題

   1.使用  qt-vsaddin-msvc2015-2.5.1.vsix   在微軟官網下載的

      報錯 the fllowing error occurred error reading vs project  

   2. 使用 qt-vsaddin-msvc2015-2.5.0-rev.09.vsix  qt官網下載的

      能夠識別到但是運行時候,會報錯找不到qt的文件

      : error : MSB4018: “VCMessage”任務意外失敗。

      : error : ERROR running qmake

      : error : qmake: (\bin\qmake.exe)

3. 使用 qt-vs-addin-msvc2015-2.0.0-beta.vsix  qt官網下載的

      可以正常運行

 

     卸載 qt-vs-addin 在  工具 --> 拓展和更新 --> 全部 --> 右側會看到已安裝的 qt-vs-addin 卸載即可。

      期間也嘗試換了不同版本的 qt進行測試。並沒有解決上述問題,降低了 qt-vs-addin版本可以正常編譯。

 

二  編譯測試程序部分問題

1.     如果出現 未找到 ui_xxxxxxxx.h  要先編譯一下ui文件纔可以

2.    vs 創建 active x 程序時

    

然後下一步  下一步 當 選擇qt 模塊式,會發現有 ActiveQT container 和  Active server 如果你兩個都勾選可能會有問題

會出現如下錯誤  error LNK2001: 無法解析的外部符號 DllCanUnloadNow 等     

 

 

再重新創建 ActiveQT srver項目,選擇模塊時 去掉  ActiveQT container   模塊即可

 

三 網頁模擬運行時的總結

 

   提示: mfc生成的 .ocx 文件和 qt 通過activeQT server 生成的 dll 是一個東西。通用的

 

 

    1. 首先要打開  cmd 進行註冊表註冊如        regsvr32   xxxxx.dll (你編譯出來的active 的dll文件)  成功後會有提示彈窗

    2. 關於 CLASSID  即下面圈紅這個,也可以去註冊表進行查詢

 

 

3. 測試程序 

 qt 測試程序 創建普通gui qt程序就行

#include <QtWidgets/QApplication>
#include <QAxWidget>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QAxWidget *flash = new QAxWidget(0, 0);


    QtGuiApplication2 w;
    w.show();


    flash->resize(500, 800);

    flash->setControl(QString::fromUtf8("{0A3B2EBA-BFB4-4F4F-AB15-B021CF9A0DF5}"));

//    flash->dynamicCall("LoadMovie(long,string)", 0, "c:/1.swf");

    flash->show();

    return a.exec();
}
 

 運行結果如下

2. 網頁上測試是通過 寫html   內容如下

    <object 
        classid="clsid:0A3B2EBA-BFB4-4F4F-AB15-B021CF9A0DF5" 
        id="0A3B2EBA-BFB4-4F4F-AB15-B021CF9A0DF5" 
        codebase="testOcx.ocx" 
        size="500" 
        width="500" 
        height="500"> 
    </object> 

 

 

運行結果如下

參考   https://wenku.baidu.com/view/a02d34f8dd3383c4bb4cd2a3.html

 

四  關於不同瀏覽器運行方面

   active x 支持 ie瀏覽器。如果要使用谷歌或者火狐瀏覽器 需要安裝插件,IE Tab

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章