BCB/Delphi ActiveForm发布全攻略

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
BCB MQTT协议是一种轻量级的消息发布/订阅协议,专为物联网应用而设计。BCB代表物联网智能交通控制系统。MQTT代表消息队列遥测传输。 BCB MQTT协议具有以下特点: 1. 轻量级:BCB MQTT协议采用轻量级的消息头,使得在有限的网络带宽和资源上能够高效地传输数据。 2. 发布/订阅模式:协议支持发布者和订阅者之间的异步通信,发布者发送消息到一个特定的主题,而订阅者接收和处理这些消息。这种模式可以实现高度的可扩展性和灵活性。 3. 可靠性:协议提供消息的可靠传输,通过QoS(服务质量)等级进行控制。发布者可以选择发送消息的重要性级别,订阅者可以通过订阅不同的QoS等级来确保消息的可靠性。 4. 设备端的支持:协议可以在各种物联网设备上实现,如传感器、智能交通系统等。它提供了适用于资源有限设备的协议规范,使得设备能够有效地与其他设备和云平台进行通信。 5. 安全性:BCB MQTT协议支持安全的通信,可以使用TLS/SSL协议进行数据加密和认证,确保消息在传输过程中的安全性。 利用BCB MQTT协议,物联网智能交通控制系统能够实现实时的交通数据传输和分析,提供路况信息和交通管理决策支持。同时,该协议还可以扩展到其他领域,如工业控制、能源管理等,为物联网应用提供可靠和高效的消息通信机制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rocknet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值