我用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
我单击按钮,却没有弹出对话框,为什么呢?
<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>
<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是控件中定义的属性。
2.弹出, 控件不能显示, 请到 internat temp 目录,找错误日志文件, 根据提示分析问题