1)创建MFC Active Control
注意创建ActiveX工程的方法:
1.1)选择ActiveX工程
1.2)勾选如下两项
1.3)打开Class View
1.4) 如下方法添加API
比如我是加了3个对外API,否则该activex没有任何功能。
OpenPort
ClosePort
TakeOneRfid
// 编译代码会自动注册,不用亲自注册,反注册使用/u
Regsvr32 D:\xxx\rifd_ocx\lh_getrfid\Debug\lh_getrfid.ocx
Regsvr32 /u D:\xxx\rifd_ocx\lh_getrfid\Debug\lh_getrfid.ocx
Regsvr32 /u D:\xxx\rifd_ocx\lh_getrfid\Debug\lh_getrfid.ocx
1.6)生成的ocx需要和其他dll放在同目录
编译参数最好静态编译(以Debug版为例)
查看编译好的ocx外部接口,可以使用oleview
2)查看GUID/CLSID
activex代码中ild文件:
// Class information for Clh_getrfidCtrl
[
uuid(C2B901C0-8B72-440A-B658-99A6E4DA5EFE) // 这就是CLSID
]
3)在web代码的最开头嵌入如下代码:
// 以下是web调用activeX的代码,这里调用了我定义的2个API,OpenPort和TakeOneRfid.
// C2B901C0-8B72-440A-B658-99A6E4DA5EFE是ActiveX的CLASSID,一定要写对,否则会提示方法不存在或者对象获取失败
<OBJECT id="AcitveOcx" CLASSID="CLSID:C2B901C0-8B72-440A-B658-99A6E4DA5EFE" ></OBJECT>
<script type="text/javascript">
AcitveOcx.OpenPort();
</script>
<input type ="button" onclick ="alert(AcitveOcx.TakeOneRfid());" value ="显示当前时间" />
<script type="text/javascript">
AcitveOcx.OpenPort();
</script>
<input type ="button" onclick ="alert(AcitveOcx.TakeOneRfid());" value ="显示当前时间" />
// 可以直接将上述代码保存为html文件用IE打开。
ps:
假如需要输出日志信息,用函数OutputDebugString。
假如需要调试,Debug>Attach to process>选择IE(有多个IE进程挨个试一下)。
本文介绍如何创建MFC ActiveX控件并实现特定功能,包括添加API、注册与反注册OCX文件、确保DLL文件正确放置等步骤,并展示了如何在Web页面中嵌入并调用这些ActiveX控件。
431

被折叠的 条评论
为什么被折叠?



