一 环境配置部分的问题
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
#include
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 内容如下
运行结果如下
参考 https://wenku.baidu.com/view/a02d34f8dd3383c4bb4cd2a3.html
四 关于不同浏览器运行方面
active x 支持 ie浏览器。如果要使用谷歌或者火狐浏览器 需要安装插件,IE Tab