用Delphi编写了名为MyOCX的OCX控件,直接注册的话在网页中可以正常使用,反注册,打包成MyOCX.CAB,在网页中调用
<OBJECT ID="VbRuntime" style="WIDTH:140px; HEIGHT: 130px ;"
CLASSID="CLSID:DB3C8478-347D-40D9-8714-233EA16B553F"
CODEBASE="MyOCX.CAB#version=1,0,0,0">
</OBJECT>
<input value="测试" type="button" onclick="VbRuntime.ShowHello()">下载提示安全警告,确认下载,控件能正常下载,在C:\WINDOWS\Downloaded Program Files也显示下载成功,并且查看注册表也存在注册信息,但控件却不能正常使用,使用VB调用该控件提示:License infomation for this component not found. ……………………但是Delphi中写成DLL却可以正常下载使用。用VB写同样OCX也可以正常下载使用。难道IE对Delphi写的OCX有限制?那么究竟如何才可以正常啊。并且使用Delphi5.0 和 Delphi7.0有同样问题。

解决方案 »

  1.   

    应该不是签名问题,VB写的OCX也没有签名却可以下载使用,Delphi写的Dll没有签名也可以。
      

  2.   

    这是因为你在创建ActiveX工程时 选择了“Make Control License ”选项...
      

  3.   

    我也觉得奇怪网上没人提到这个问题,好像只有我遇到一样。该OCX直接用regsvr32.exe注册的话可以在网页和VB中使用,功能什么的没什么问题,所以应该不是有数据类型的问题就是自动下载安装时有问题,VB写的为什么不会呢。我机器环境是WinXp SP2,安装了.net、vs6、Delphi2005、Delphi7、Delphi5,会不会是Delphi2005不能写OCX,对其有了影响。
      

  4.   

    的确应该是创建ActiveX工程时 选择了“Make Control License ”造成的,由于以前都是用VB写组件多写,Delphi中很多问题都不清楚,居然这么简单,先谢谢了。