社区
C++ Builder
帖子详情
ActiveForm的OCX注册不成功
kingxu
2003-10-28 09:44:06
我开发的ActiveForm的OCX在注册时出现提示,
pM->hInst != 0@c:\program files\borland\cbuilder6\include\atl\atlbase.h/5911
press[Y]to terminate, [N]to continue and [C]to Debug
...全文
42
4
打赏
收藏
ActiveForm的OCX注册不成功
我开发的ActiveForm的OCX在注册时出现提示, pM->hInst != 0@c:\program files\borland\cbuilder6\include\atl\atlbase.h/5911 press[Y]to terminate, [N]to continue and [C]to Debug
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huangjuliang
2003-10-28
打赏
举报
回复
OCX控件的注册问题,需要分两部实现
一 用代码在ocx中实现脚本安全和初始化安全,很简单,在*impl.h文件中在class ATL_NO_VTABLE...中添加如下语句
//以下为增加的,标记为脚本安全和初始化安全
BEGIN_CATEGORY_MAP(TSaftTestImpl)
IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
END_CATEGORY_MAP()
一 实现数字签名,如果你有钱,你可以申请正式的数字签名,否则可以采用如下做法,虽然下载安装控件时会警告无信任根,但在IE默认安全设置下载和运行完全没有问题,不会有安全警告。
1、创建一个自己的证书文件:
makecert /sv "Record.PVK" /n "CN=SinoWave" dream.cer
这里,Record.PVK表示新创建的私人密钥保存文件名
SinoWave是你想显示的公司名
dream.cer是你创建最后的证书文件名
这些根据你自己的要求填写,最后得到Record.PVK和dream.cer两个文件。其中,运行过程中需要输入私人密钥的保护密码(sw),一定要输入一致,不要出错。
2、转换cer格式为spc格式(可以省略),得到dream.spc文件。
cert2spc dream.cer dream.spc
3、用VS6工具中的 cabarc生成internet分发的CAB包,
cabarc.exe N DataTransfer.cab DataTransfer.ocx
4、同时制作分发代码(.htm,其中包含使IE可以自动下载安装包的代码)。
现在得到了2个文件DataTransfer.CAB和DataTransfer.htm。
.htm中包含类似如下的代码:
<OBJECT ID=" DataTransfer " CLASSID="CLSID: CA466D54-0684-49D2-B0C3-DD7E09EA76D3" CODEBASE="http://192.9.200.8/DataTransfer.CAB#version=1,0,0,0"></OBJECT>
5、给CAB文件签名
运行signcode,signcode运行后会出现数字签名向导,首先选DataTransfer.CAB,下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义,这样才能从文件选择证书,选择前面制作的dream.spc,再下一步是选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散列算法,一般用md5就可以了,下一步是选择其他证书,直接下一步,填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明,再下一步是加盖时间戳,例如http://timestamp.sheca.com/timestamp
6、用chktrust检查是否正确
chktrust -v DataTransfer.CAB
7、将签名后的DataTransfer.CAB和DataTransfer.htm复制到IIS的某个目录下。并在IE中打开DataTransfer.htm文件进行测试。
三 如果你用到附加文件,如使用midas,将附加文件和*.inf文件一起打包,对cab签名。htm文件中codebase指向cab。
注意一定要将*.inf文件一起打包。
见http://expert.csdn.net/Expert/topic/2185/2185265.xml?temp=.4656641
huangjuliang
2003-10-28
打赏
举报
回复
我注册都可以的,只要按照步骤就可以了!
菜单
Project->Options
Build with Runtime Packages 的钩去掉
再选择Linker 页,把Use Dynamic RTL 的钩去掉
将C++Builder创建的Activex设定为脚本安全[转帖]
BEGIN_CATEGORY_MAP(CYourComObject)
IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
END_CATEGORY_MAP()
把这一段话copy到.h文件里,放在什么地方就不用说了,这里的很多的代码与这相似的,放在一起就可以了
实际上就了这一段话,IE里就不用改了!
Save 一下
菜单
Run->Register ActiveX Server
再
菜单
Project->Web Deployment Options
在Target dir(如果是BCB6的话,双击一下,就可以了)如果你的wwwroot的路径如下
那在Target dir
填
C:\Inetpub\wwwroot\
Target URL中填
http://计算机名
HTML dir
C:\Inetpub\wwwroot\
下面全部默认就可以了!
最后一步
菜单
Project->Web Deploy
下面就可以在IE中打开了
stwfa
2003-10-28
打赏
举报
回复
我开发的这套系统也需要用到ActiveForm,不过,我目前还没有进行到这里,因为我在CORBA服务器/客服端编程中遇到了困难,如果我的困难解决了,我们一起探讨这个问题!
huangjuliang
2003-10-28
打赏
举报
回复
没有碰到过这种问题!
Active
Form
电子签名示例
自己制作
Active
Form
电子签名的演示文档,具体步骤察看压缩包的Word文档。 先要有工具包,包括以下几个软件: makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥 cert2spc.exe 将cer格式证书转换成...
Delphi
Active
Form
函数使用和自定义事件
使用Delphi 开发
ocx
,使用函数和自定义事件的源码实例。希望对你有帮助。
VB编程资源大全(控件 窗体1)
此外,你还可以改变颜色、字体、边框以及鼠标悬停状态等(18KB) 34,tray
form
.zip 该控件让你轻松地将窗体发送到系统托盘中(32KB) 35,
active
form
.zip 一个给窗体换肤的控件(27KB) 36,rotext.exe ...
VB编程资源大全(控件 窗体2)
此外,你还可以改变颜色、字体、边框以及鼠标悬停状态等(18KB) 34,tray
form
.zip 该控件让你轻松地将窗体发送到系统托盘中(32KB) 35,
active
form
.zip 一个给窗体换肤的控件(27KB) 36,rotext.exe ...
Delphi5开发人员指南
7.8 BlackJack:一个
OCX
示范程序 155 7.8.1 纸牌 155 7.8.2 游戏 157 7.8.3 调用
Active
X控件的方法 165 7.9 总结 166 第二部分 高级技术 第8章 使用GDI和字体的图像编程 167 8.1 TImage:Delphi的图像显示 167 8.2 ...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章