从ocx控件编写到发布到网上全过程.docx

上传人:b****6 文档编号:3311508 上传时间:2022-11-21 格式:DOCX 页数:15 大小:349.17KB
下载 相关 举报
从ocx控件编写到发布到网上全过程.docx_第1页
第1页 / 共15页
从ocx控件编写到发布到网上全过程.docx_第2页
第2页 / 共15页
从ocx控件编写到发布到网上全过程.docx_第3页
第3页 / 共15页
从ocx控件编写到发布到网上全过程.docx_第4页
第4页 / 共15页
从ocx控件编写到发布到网上全过程.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

从ocx控件编写到发布到网上全过程.docx

《从ocx控件编写到发布到网上全过程.docx》由会员分享,可在线阅读,更多相关《从ocx控件编写到发布到网上全过程.docx(15页珍藏版)》请在冰豆网上搜索。

从ocx控件编写到发布到网上全过程.docx

从ocx控件编写到发布到网上全过程

VC6.0从开发activexocx控件到发布到网上全过程(sunxiaopeng)

ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。

控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。

一:

vc创建activex控件

创建一个activex控件,名称为:

test.ocx,创建步骤略。

显示结果如下:

为该控件增加一个方法voidGetStr(LPCTSTRstr),

该方法内部代码如下:

这样,GetStr方法就被加入了。

onDraw函数下代码如下

下面,测试该方法,鼠标右键控件,选择InvokeMethods,弹出如下对话框:

在parameter中输入hello,单击Invoke按钮,显示如下:

那么如何在网页中将参数传递给控件,让其在网页中显示出来呢?

稍后介绍

把test.ocx控件放入c:

\ceshi目录下,到网上下载Makecert.exe,Cert2Spc.exe,Signcode.exe,并一同放入c:

\ceshi目录下

二:

ActiveX打包与发布

1)用到的工具如下所示:

1.Makecert.exe---证书创建工具

2.Cert2Spc.exe---发行者证书测试工具

3.Signcode.exe---文件签名工具

2)ActiveX发布步骤

打包activeX需要制作证书,具体用到makecert、cert2spc、signtool这三个工具,另外需要:

digsig.dll和signer.dll。

现在我们将以上工具和.ocx控件放到同一个目录c:

\test下.

(1)单击"开始"-->"运行(R)"-->输入"cmd"-->回车-->进入到操作的控件所在的目录(需要将上面所说的工具,和ocx控件放到一个文件夹下);

(2)创建inf文件,代码如下

[version]

signature="$CHICAGO$"

AdvancedINF=2.0

[Add.Code]

test.ocx=test.ocx

[test.ocx]

file-win32-x86=thiscab

RegisterServer=yes

clsid={B649E664-D7CF-4481-A58E-AC8B4440794A}

DestDir=11

FileVersion=1,0,0,1

上述代码解释如下:

file-win32-x86=thiscab    

//告诉ie到哪里去得到这个dll,file一共包括三个部分,第一部分是file,这个永远都是这样的(至少目前来说);第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC  OX了;第三部分是CPU类型,比如说x86、  ppc  (Power  PC)、  mips或者alpha了 。

其中“thiscab”是一个关键字,表示 CAB 包含此 DLL,也可通过指定一条绝对或相对路径,从一个 HTTP 位置下载所需的 DLL,   

例如:

  file-win32-x86=   

clsid={B649E664-D7CF-4481-A58E-AC8B4440794A}    

//“clsid”是将要安装的控件的 CLSID , 如何获得呢------

DestDir=11    

//它的值是dll将要存到本地硬盘的位置,如果它的值是10,则将dll放到\Windows或者\WinNT下;如果是11,则放到\Windows\System或者\WinNT\System32下;如果未指定任何 DestDir(典型情况),则代码安装在固定的 OCCACHE 目录中。

  

FileVersion=1,0,0,1

//说明了atl90.dll的版本号  

(3)将inf和dll打包成cab

cabarc n test.cab test.inf test.ocx这样就将其打包成test.cab,我是用“iexpress“生成的,在c:

\windows\system32下面有。

要进入这个路径打开,或者在运行里直接输入:

iexpress打开,复制出来是打不开的。

(4)生成cert证书

为得到签名用的spc格式

 makecert /sv "test.pvk" /n "cn=test"-$"individual"–r test.cer

不加红色字,最后生成数字签名的时候,会出现“windows不能构建证书路径”.

makecert/sv"Record.PVK"/n"CN=公司名称,E=email,O=作者"dream.cer

 执行过程中会要求输入密码,密码要一致,如下图所示

(5)生成.spc文件

cert2spc test.cer test.spc之后,就在其目录中多了一个test.spc文件

(6)对cab文件进行签名

运行singcodesignwizard,此时会弹出对话框,操作如图所示:

直接按下一步

找到指定目录下的.cab文件

选择自定义

选择“从文件选择”选项

下一步

按浏览找到.pvk文件

选择md5

;默认直接按下一步

不填,下一步

不填,下一步

按完成

(7)

下面是一个嵌有ActiveX控件test的HTML代码示例:

NewPage

BFB6032F-6F8D-4B7F-B0B3-6303D08348A4"id="test"CODEBASE="

WIDTH=400

HEIGHT=200

ALIGN=center

千万要注意:

classid是可以从注册表中查到,也可以从vc源代码中获取,打开test.odl文件,id如下所示:

这样,一个网页就创建成功啦!

最后,c:

\test中有如下文件:

打开test.htm网页显示结果如下:

三:

网页中参数传递

接下来,来完成最核心的东西,从网页中传递参数到控件显示:

修改html代码如下:

MyActiveX-Methods,Properties,andEvents

functionPassParameter()

{

if(StringInput.value!

="")

{

test.GetStr(StringInput.value);

}

}

MyActiveX-Methods,Properties,andEventsExample

CLASSID="CLSID:

BFB6032F-6F8D-4B7F-B0B3-6303D08348A4">

InputParameter:

VALUE="Submit"ONCLICK=PassParameter()>

如上述代码所示,我们在JavaScript中写入函数PassParameter,该函数调用了控件中的方法GetStr,

当鼠标点击按钮submit时,就会调用该函数,进而间接调用该方法。

在编辑框中输入hello,单击submit,显示结果如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1