我用VC6.0写的一个ocx,现象是:
1.在Windows窗体中的引用是正确的
2.打包进网页后总是找不到这个控件
3.同样的机器上,用VB写的ocx打包进网页后之正确的
4.将VB的控件在网页中的代码部分直接换成VC控件的,仍然不行请问:
1.VC的ActiveX控件难道还区分是否在网页上用的吗?
2.请问应该怎么做啊?

解决方案 »

  1.   

    要区分的吧,vc的activex好像是com的.
      

  2.   

    不区分的,看看是不是漏了什么dll
      

  3.   

    用ActiveX Control pad试试。
      

  4.   

    ocx控件是要注册了才能用,是否注册是通过classid的值是否存于注册表中来决定,
    所以不同的ocx控件classid必须不同,否则加载的不是预期的ocx.
    本机可以有可能是VC编译或创建时就替你注册好了,所以本机可以用,服务器注不注册没关系,
    客户在打开网页时先找classid,没找到时,再到指定的路径(服务器路径)下载,提示安装,
    而没有数字签名的ocx一般的浏览器会屏蔽下载安装步骤,
    因此ocx最终还要进行数字签名,别人在能安装使用
      

  5.   

    将控件打包成cab文件,并在<object ……>里面加上codebase="该控件在服务器上的位置"
    你去搜一下Activex cab打包,就能找到
    需要自己写一个inf文件,如
    [Version]
    signature="$CHICAGO$"
    AdvancedINF=2.0[Add.Code]
    jatoolsP.dll=jatoolsP.dll[jatoolsP.dll]
    file-win32-x86=thiscab
    RegisterServer=yes                        //这地方就是需要在客户机注册的意思
    CLSID={B43D3361-D975-4BE2-87FE-057188254255}
    ;DestDir=11
    FileVersion=1,2,0,6
    类似这个的,用vc呆的打包工具,把控件和你自己写的打包工具打一起,生产cab文件通常还需要去CA申请证书,加上数字签名。