我用MFC向导做了一个OCX,在Dialog上放置一个BUTTON
   有如下代码 :
   void xxx::OnButton() 
{
CFile file;
char buff[125];
if(file.Open("ReadMe.txt", CFile::modeRead))
{
file.Read(buff,125);
MessageBox(buff);
}
}
1. 在工程里测试时,能读出ReadMe.txt文件!
2. 关于这个工程所有的源代码到这个网址去下:
http://vip.microwolf.com/xiaot/test/bff.rar
3. 我用cabarc.exe将ocx, ReadMe.txt打成一个bff.cab包
这个包里有bff.ocx,bff.inf!
放在网页里,我在本机里注销了这个OCX,在地址栏里输入
http://192.168.10.175/test/a.htm
我单击按钮,却没有弹出对话框,为什么呢?

解决方案 »

  1.   

    测试.htm内容
    <object id=DWebOffice style="left: 0px; width: 100%; top: 0px; height: 450px" classid="clsid:05430EC0-69CA-437A-B1F9-4B78B8647BEA" viewastext codebase="http://DigitalTitan:9003/ActiveX/WebOffice.cab#version=1,0,0,2">
    <param name="_Version" value="65536">
    <param name="_ExtentX" value="6959">
    <param name="_ExtentY" value="2699">
    <param name="_StockProps" value="0">
    <param name="FileName" value="">
    <param name="Rule" value="">
    <!--<param name="ReturnData" value="">-->
    <param name="InitData" value="">
    <param name="DesignFile" value="">
    </object>
      

  2.   

    如果未签名可以WebOffice.cab换WebOffice.ocx试
      

  3.   

    在网页中嵌入ActiveX文件包实现基于Internet软件发布:给出一个嵌入实例:<object style="LEFT:0px;TOP:0px" codebase="texturemap.cab#version=1,0,0,1" width="640" height="480" align="baseline" border="0" classid="clsid:0F968806-D214-11D5-9022-5254AB123A61" name="texture" VIEWASTEXT>
    <param name="_Version" value="65536">
    <param name="_ExtentX" value="2646">
    <param name="_ExtentY" value="1323">
    <param name="_StockProps" value="2">
    </object>   其中name属性是控件对应的对象名,实现在网页中对控件定义的方法进行调用、属性进行设置;codebase属性指示的是控件包的下载位置,除了cab文件外,也可以直接指向一个OCX 文件或者DLL文件,但要发布软件,这些文件都必须事先签署过;codebase中的version表示控件的版本号,当控件在客户端不存在或现有控件的版本比codebase属性中指定的版本旧时,浏览器将下载并注册指定的文件;classid属性指定的是控件的CLSID,客户端系统将通过此ID在注册表中寻找该控件是否已被注册,并确定控件的版本以决定是否重新下载注册。Width,height属性定义控件在浏览器中的客户视窗大小。  在将ActiveX嵌入后就需要实现调用控件中设定的方法和属性。可以通过VBScript脚本进行调用,如:<script language="VBscript">
    Sub window_onload()
    texture.Radius=5
    end sub
    </script>
    <input type=button onclick='call texture.servertexturemapping("218.108.175.187","Apple.bmp")'>   其中servertexturemapping是控件中定义的方法,Radius是控件中定义的属性。
      

  4.   

    1. 警告筐是否弹出? 没有,那网页编写有问题
    2.弹出, 控件不能显示, 请到 internat temp 目录,找错误日志文件, 根据提示分析问题