Qt ActiveX创建、调用和调试
1.创建并设置工程
vs2008新建Qt ActiveX工程:
下一步默认选择,加载Core library、GUI library、ActiveQt server library,默认下一步,finish.
设置工程的属性:
属性->配置属性->调试 命令:在用浏览器测试ocx的时候用得到,建议填写IE的绝对路径;命令参数:填写嵌入你的ocx的html的绝对路径。
2.在第一部设置好后,随便写几个信号和槽链接,生成一个dll组件(Active
控件可使ocx或dll,我这里是dll),将生成的dll用depends工具查看该dll的所有依赖项,将所有的依赖项拷贝到当前目录,编写ActiveX控件注册脚本,将 ActiveXTest.dll 重命名为d放在生成目录下,双击此文件等待注册成功:
我的生成目录:
3.编写html脚本嵌入ocx
如果ocx想要通过IE浏览器调用,则必须编写html脚本掉用控件,通常的例子如
下,保持你的html路径与你在设置工程时的路径一致。
<html>
<head>
<title>Test page for WebCall ActiveX</title>
</head>
<body>
<object
ID="ActiveXTest"
CLASSID="CLSID:64A09A02-D01F-46D4-A597-EF106A4FADC5"
width="100%" height="100%" codebase="ActiveXTest.dll#version=1.0.0">
</object>
</body>
</html>
重名名为scricp.html
4.调试ActiveX控件
一般调试ActiveX控件有两种方式:通过IE调试,通过编写测试程序调用Activex调试。
IE调试:先将工程运行起来,再选择工具栏中的工具->附加到进程->选择你的浏览器
(我的是),确定开始调试。(这里用IE调试时需要加载很多系统的pdb,比较麻烦,我这里没有成功)。
编写测试程序调试:在当前工程下新建一个测试工程,编写测试代码:
#include "test.h"
#include <QApplication>
#include <QtGui>
#include <ActiveQt/QAxWidget>
#pragma comment(lib,"QAxContainerd.lib")
//此程序用来测试上面的ActiveXTest是否能正常使用
//在调试ocx时必须先写一个测试程序才能调试
int main(int argc, char *argv[])
{
QApplication a(浏览器的activex控件argc, argv);
QAxWidget *flash = new QAxWidget(0,0);
flash->resize(500,80);
flash->setControl(QString::fromUtf8("{64A09A02-D01F-46D4-A597-EF106A4FADC5}"));
flash->dynamicCall("onBtnClicked()");
flash->show();
return a.exec();
}
将所有的ActiveX工程的dll和pdb拷贝到测试程序的生成目录下,方便调试时到源代码的符号,在ActiveX工程中打断点,运行测试程序,成功
具体可参考ActiveXTest附件。
pan.baidu/s/1i3FY16H
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论