一 環境配置部分的問題
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