BCB/Delphi ActiveForm发布全攻略

原创 2002年06月10日 09:40:00

BCB/Delphi ActiveForm发布全攻略

    论坛上很多朋友(也包括我)提到ActiveForm的发布问题,都没有得到很好的解决。
下面是本人开发ActiveForm的一点经验,拿出来跟大家分享,开发环境为 Win2000Server,IIS5.0,BCB5.0,Delphi也差不多的了。

    先说说程序的开发,如果是从一般应用程序移植而来,注意所有的窗体(除了主窗体)都要动态创建,工程的选项里面是没有Auto-Create Forms的选项给你的。还有,很重要的就是要实现IObjectSafety接口,其实很简单,加上两句话就可以了(for BCB,摘自Borland新闻组borland.public.cppbuilder.activex,Delphi的嘛,对不起,不知道):

You have to implement the IObjectSafety interface.
I cut this code from a MSDN example and it worked great for me without any
changes. This code basically makes everything your control does safe for
scripting and initialization.
You can make the following changes in your class declaration:

class ATL_NO_VTABLE TYourcontrol:
.
.
 , public IObjectSafetyImpl<TYourcontrol>  // <--- Add this.

BEGIN_COM_MAP(TYourcontrol)
 .
 .
 COM_INTERFACE_ENTRY(IObjectSafety)   // <--- Add this
.
.
END_COM_MAP()

    编译和调试就不说了,请大家查查论坛。还是提一下吧,编译时最好是把所有的包都编译进AvtiveForm里面去,方法和一般程序是一样的,不说了。

    好了,正式开始了!
    开始设置了哦,近视的赶紧戴上眼镜,鼠标不好使的赶快换,键盘。。。。。。哎哟,好好好,就开始,就开始。。。。。。
Project->Web Deployment Options 打开设置选项卡。第一页,设置路径,这里根据实际情况填了,注意别填错了哦。下面是我的填法(我的IIS根目录是C:/Inetpub/wwwroot/,机子IP是192.168.0.88):
Target Dir: C:/Inetpub/wwwroot/
Target URl:
http://192.168.0.88/
HTML Dir: C:/Inetpub/wwwroot/

接着是是一些可选项,一般都全部选上。第二页,包设置,如果你编译的时候把所有的包都编译进ActiveForm了,这里是不用设的,最好也是这样,要设的话,参考第三页的设置。第三页,附加文件,一般是一些供ActiveForm调用的DLL,很多朋友的控件装不上,很大原因是没设好这里。有时C++Builder会自动将所需的DLL添加到这里,有时则没有,真是搞不懂。。。。。。没办法,还是得用。如果不知道你的程序用了什么特别的DLL,可以用一些Show Dependency工具看。本人的ActiveForm用到了客户端数据集,需要midas.dll,所以我把它给加上了,CAB选项里面最好选压缩在同一个压缩包内,不然还要设下面的路径。路径的设置和第一页一样。
好了,大功告成!Project->Web Deploy,所设目录下就生成三个文件,一个inf安装文件,一个HTML文件,还有一个CAB格式的压缩包文件(也可能有多个,看你怎么设置的了)。不用做任何修改,打开HTML文件,就可以看到ActiveFrom了。到别的机子上,IE浏览器安全级别设为最低,输入那个HTML的地址,我这里是Http://192.168.0.88/PrintFormControl.htm,先是提示安装XXX.inf文件,然后提示安装XXX.cab文件,都点确定,就可以看到ActiveForm了。什么?看不见?那就只好回头看看有什么没做对的了。。。。。

    就这么多了,反正我是这样发布成功的。。。。。。不知大家把自己的ActiveForm发布好了没有。还没有?真的?试过有100遍了吗?什么?都第1000遍了?
    哈哈哈哈哈哈哈。。。。。
    其实。。。其实还有更好更方便更简单更标准的方法!
啊!!!!哎哟。。。好疼。。。。别。。别。。我这里不收购烂眼镜和破鼠标,啊!不要再砸了!!!我说。。。我说。。。
下载一个做CAB压缩包的软件,我用的是PowerArchiver,找到微软的代码签名软件signcode.exe,搞到一个代码签名证书,www.ca365.com可以申请到免费的证书,要不,可以自己做CA给自己发证书。好了,就这三样东西。然后修改或重新做一个.inf文件,内容大致如下:
[Add.Code]
PrintControl.ocx=PrintControl.ocx
midas.dll=midas.dll

[PrintControl.ocx]
file=thiscab
clsid={AECDCD52-732D-43AA-BB90-F8B784E1A169}
RegisterServer=yes
FileVersion=1,0,43,0

[midas.dll]
file=thiscab
FileVersion=6,0,6,163

再然后把*.ocx,*.dll还有那个.inf文件做成一个CAB压缩包。用signcode.exe和证书对这个压缩包进行代码签名。再修改HTML文件,内容大致如下:
<HTML>
<H1> C++Builder 5 ActiveX Test Page </H1><p>
You should see your C++Builder 5 forms or controls embedded in the form below.
<HR><center><P>
<OBJECT
   classid="clsid:AECDCD52-732D-43AA-BB90-F8B784E1A169"
   codebase="http://192.168.0.88/PrintFormControl.cab"
   width=100%
   height=100%
   align=center
   hspace=0
   vspace=0
>
</OBJECT>
</HTML>

好了,现在可以把IE的安全级别设为中了,ActiveForm照样下载运行。什么,不会用那几个软件?我可帮不了你了,自己看帮助吧,呵呵。

By RockNet
2002.4.30 23:30:00

Delphi 编写ActiveX控件(OCX控件)的知识和样例

一、ActiveX应用情况简介:                          ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于...
  • zang141588761
  • zang141588761
  • 2016年04月26日 10:10
  • 1686

ActiveForm实例 大全

ActiveForm实例 下面实例中几乎涵盖ActiveForm的所有用法,对应于代码下面有效果图,至于如何修改表单的结构来实现我们所需求的样子,请看上面的相关教程           '...
  • hefy780144
  • hefy780144
  • 2016年02月17日 11:36
  • 2769

AnsiString的基本用法 bcb第一弹

最近由于处在半转型状态,学bcb也是模模糊糊。 由于在学C++builder,ansistring是bcb中提供的类跟java中的String差不多  但是,比c++ 中的String在bcb中...
  • limuyun
  • limuyun
  • 2014年05月30日 15:21
  • 1439

Delphi 查询全攻略

  • 2007年11月26日 13:37
  • 43KB
  • 下载

DELPHI组件安装全攻略

DELPHI组件安装的构成      安装一个组件到DELPHI上,实际上DELPHI只做几个有限的动作。      1、添加文件路径到搜索路径上;      2、记录包所在的路径以及包的名字;   ...
  • fjclc2008
  • fjclc2008
  • 2011年03月22日 09:29
  • 322

EhLib DBGridEh组件在Delphi中应用全攻略总结

【DBGridEh(增强型表格组件)功能详解】 DBGridEh组件无论在外观上还是功能上都非常类似Borland开发工具中现有的dbgrid组件,它除了提供dbgrid组件的全部功能外,还增加了下...
  • hangyi_008
  • hangyi_008
  • 2014年03月15日 20:03
  • 677

DELPHI组件安装全攻略

一、前言     由于系统不稳定,经常要重装DELPHI。而每次安装DELPHI的时候,原来注册的组件都被刷新,只能重新安装组件。众所周知,DELPHI的第三方组件N多,这个安装着实令人头疼。更...
  • aTian2009
  • aTian2009
  • 2013年01月24日 16:37
  • 1337

[delphi教程]delphi开发教程全攻略(1)

如何在Image上提示字符? 怎样加入tb2k FastReport4.0安装后中文的问题。 怎样单独得到现在的年和月?? [考题]这两种字符串赋值语句有什么区别 TXmlDocument控...
  • Iamarmy
  • Iamarmy
  • 2012年01月02日 18:05
  • 417

vc6开发activex并发布全攻略

  • 2013年06月20日 21:05
  • 688KB
  • 下载

vc6开发ActiveX并发布全攻略(二)

[背景]        做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该ActiveX控件...
  • eilent
  • eilent
  • 2011年11月23日 12:53
  • 1321
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BCB/Delphi ActiveForm发布全攻略
举报原因:
原因补充:

(最多只允许输入30个字)