一. 关于ActiveX
ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络中任意运行的程序。这个组件就是ActiveX近控件。ActiveX是Microsoft为抗衡SunMicrosystems的JAVA技术而提出的,此控件的功能和JAVAapplet功能类似。
二. ActiveX的开发环境
基于ffmpeg的ocx开发使用了visual studio 2010环境作为编译平台,因为vs平台提供了良好的开发ocx类库支持,已经所用到的MFC框架。Vs提供的类向导工具能够帮助开发者提供快速的事件添加机制。
三. Ocx与web的关系
Ocx被叫做插件(控件),因为其体积小,几乎不受运行环境影响,所以常被当做浏览器中的客户端使用,而且它能够自动提醒用户更新。Ocx被web调用的格式一般为:
<head>
</head>
<body>
<div>
<OBJECT ID="MyActiveX1" WIDTH=400 HEIGHT=300
classid="CLSID:E6FB5690-0648-4DBC-8571-B57BE03B80EB"
CODEBASE="XXX.cab">
</OBJECT>
</div>
</body>
</html>
其中classid为vs为ocx生成的ID号,可以通过vs提供的OLEVIEW.EXE工具获得。Codebase属性为.cab文件所在路径,cab为ocx经过打包,将ocx的依赖项一起打包成.cab格式文件。Ocx的依赖文件可以通过vs提供的DEPENDS.EXE工具获得。打包要用到的几个工具可以从网上下载,并且.inf文件的格式网上也有很多介绍。
通常ActiveX控件在开发并注册后,一旦在网页中运行,IE并不认为这是一个脚本安全的,会弹出一个IE提示:已经阻止此站点以不安全的方式使用ActiveX控件,这个不要紧,点第一项安装一下就ok了。
四. Ocx的接口
Ocx的接口是为了web与ocx控件进行交互开发的,函数的生成可以使用vs提供的类向导选项创建。在web中可以使用jsp等一些脚本语言调用。
五. Ocx开发注意事项
1. 要想使mfc窗口嵌入到web程序,必须设定mfc窗体的style属性为child。
2. visible属性为TRUE,否则窗体不显示。
3. 编译的时候可能报类似错误:
error MSB8011:未‘能\uinput2注?册e输出o。B请尝试启用p“g逐€用p户重d定e向u”h,C或?者O使g用p提n升!的I权限A从C命?令s提n示|符?处注?册e该组件?。B
这个没关系,ocx已经生成成功,只不过编译器没用成功注册而已,可以手动注册。
4. Ocx的手动注册为在命令行运行窗口输入 regsvr32 然后将需要注册的ocx文件拖入到输入框,然后回车就可以注册成功,如果没有成功,请将ocx的依赖项添加到oxc所在的文件夹。
5. ocx的卸载,同注册类似,只不过在regsvr32 后面再加入一个参数 /u即可。
6. ocx不能单独运行,所以需要调试可以使用web载入ocx或者使用vs提供的工具:TSTCON32.EXE,这个工具在2010里面也有,不过需要进行编译代码才能生成。可以使用vc6.0安装目录下的以上调试工具。