分享
 
 
 

自动建库的安装程序制作方法

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Wise Solution

日期: 2003-7-8

发件人: cadinfo

关于: Wise Installation System - Profession Edition

Wise Installation System是什么我不想介绍了,对它的了解仅是半个小时的事情,你也可以从国内各个知名点的网站将它下载,我没有做过任何破解的尝试,似乎安装完成之后就能使用,不必考虑注册与否,至少我在使用过程中没有发现任何形式的限制!

不过提醒一点的是:尽量不要使用国内制作的汉化,不知道是什么原因,开始也安装了汉化包,看着总别扭,不过最主要的是使用也不顺!汉化作者根本没有时间去做完整的测试,只是埋头将各种形式的资源进行翻译。

万事开头难J 下面我给大家整理出这份文档,以便给使用或者想了解wise安装制作的朋友带个头,或许会有抛砖引玉的功能!熟悉wise的朋友也可以给我邮件 cadinfo@263.net ,互相讨论!

感谢csdn上的朋友,正是这些网络上的无名朋友给了我很多启发,让我有兴趣完成了Wise探索!

言规正传,首先我们讨论问题的提出,为什么要使用Wise:

当您辛苦的把软件完成的时候,您也许会露出得意的笑容J 且慢,您还有重要的事情没有完成,难道就让你的软件这样发布了,这不是等于streaking吗?当您的应用程序使用数据库时,您发布软件不会将脚本给客户吧,这样开发细节就被客户一览无遗,况且并非每个用户都熟悉建库操作,所以必须为您的软件制作安装包,让客户简单的输入一些配置或登录信息即可完成安装,进入使用环节。

当您打开Wise Installation System时候,你会发现这款安装制作软件非常容易上手,如果您的软件仅仅是文件组的拷贝,那么大约几分钟的事情就可以完成安装包的制作。所以这里我跳过这个简单过程,直接讲述我在制作自动生成数据库安装包过程中的心得。

由于Wise自身提供的脚本的局限性,使用脚本无法完成安装包自动建库;然而Wise为了扩展自身功能,它提供了对dll函数的调用,于是我的思路便产生了,何不使用自己熟悉的开发语言来生成dll,利用接口函数完成建库工作,在建库过程中需要注意的事情是:1.脚本文件不能以文件形式存在,原因:建库是在客户端完成,将建库脚本做成文件形式无异于告诉客户您的数据库是如何安排的,您的所有触发器和存储过程全部变得透明;2.需要用户输入数据库登录方式,没有登录权限是没有办法在客户的SQLServer中生成您的数据库的,因此您必须定制对话框以提供用户接口。

好了有了这两点思路,我来进一步说明如何利用dll完成建库的接口函数。Dll的导出函数您可以自己参考msdn,很简单您可以使用__declspec(dllexport)来修饰函数使它成为可在外部调用的函数,也可以使用def定义来实现,此处值得提醒的是,wise手册上说明使用外部函数时,必须将函数调用规则声明为__stdcall 或者 CALLBACK。我们可以使用ado数据库引擎来完成建库,在您的dll项目的预编译头文件stdafx.h中添加以下代码:

#pragma warning (disable: 4146)

#import "x:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

#pragma warning (default: 4146)

完成ado的支持,之后就可以定制自己的建库函数,例如:

const short/*__stdcall*/CALLBACK fnBuildDB(const short sec=1, const char* server="localhost", const char* uid="sa", const char* pwd="", char* retmsg="Install Sucess");

之后我们完成对此函数的功能逐步实现:

步骤分为以下5步:

1. 判断客户端是否安装SQLServer,以及SQLServer版本是否可以接受;

2. 初始化Com对象,初始化ADO使用环境;

3. 根据传入参数创建连接字符串,创建ADO连接对象;

4. 读取建库资源,进行解密,使用istrstream对象完成建库脚本的整理和建库操作;

5. 关闭连接,关闭Com对象。

在建库函数完成之后,我们可以到Wise中创建建库脚本了。

同样,您也可在此先判断SQLServer的安装,然后先安装您的建库dll到目标机器,调用fnBuildDB完成客户端数据库的安装,在这个函数中,提供了返回信息监控建库的过程,您可以判断返回代码,如果发生错误,那么利用Wise的Display Message脚本向用户提供出错原因。

好了,本文仅提供一种在Windows 2000下利用Wise制作自动建库的安装程序的思路,并没有提供完整的源代码,希望这个思路能给有兴趣的朋友带来动力。举个例子,竖起一盏灯,让您走向光明,而不会把等带到您的面前,路还是要自己走的J!

时间仓卒,文章写得比较乱,希望网友指点。

(提醒:如果您在.NET FRAMEWORK下制作安装程序的话就简单多了,VS.NET提供了安装程序制作包,您可以使用它来完成建库安装包的制作,然而对于在2000系统开发的不依赖.net的软件,实在没有必要,因此我在这里发文,完成同样功能,希望这种dll扩展方式能够为朋友们带来通往光明的道路)

cadinfo

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有