|
您的位置:学院
>> 编程开发 >>
PowerBuilder >> 使用install shield制作PB6程序的安装盘 (一)至(五)
|
使用install shield制作PB6程序的安装盘 (一)至(五)
|
本文介绍这种
PB6+Odbc+sqlany where
情况下的安装程序的制作,这种情况是最复杂的情况,请大家支持
到底需要装什么呢?
(1)PB运行时刻库
a.必要的Microsoft接口
Msvcrt.dll
Msvcrt40.dll
Olepro32.dll
这三个文件是必不可少的,而且不一定能保证被安装的机器上一定有这三个文件,所以做安装盘时最好包含。
b.PB运行时刻库(32位)
pbaen60.tlb 对OLE的支持
pbdwe60.dll 对数据窗口的支持
pbvm60.dll PB虚拟机,一定要有
只有三个就够了!没有想到吧?
(2)PB与数据库客户端的专用接口或ODBC接口
pbodb60.dll
pbodb60.ini pb ODBC 专用接口 (sql anywhere必须装)
pbor7360.dll pb oracle7.3 专用接口
pbsyc60.dll pb sybasew 专用接口
其他的我没有用过,不用都装,需要哪个就装哪个。
(3)PB应用程序和相应的PBD或DLL
这就是你的exe和pbd(DLL)了!
(4)sql anywhere相应的文件
dbeng50.exe
dbl50t.dll
wl50ent.dll
wod50t.dll
wodbc.hlp *当然可以不装拉
wtr50t.dll
这5个文件保证已经被创建的数据库可以正常运行
(5)sql anywhere DB文件
只要包含*.db就可以了,*.log不要(加上*.log有时会出问题)
(6)帮助文件和其他文件
怎样做hlp文件不用我告诉你吧!
如果主机上没有装ODBC那么需要装这些文件:
Ds16gt.dll
Ds32gt.dll
Odbc16gt.dll
Odbc32.dll
Odbc32gt.dll
Odbcad32.exe
Odbccp32.cpl
Odbccp32.dll
Odbccr32.dll
Odbcinst.cnt *当然可以不要拉
Odbcinst.hlp *当然可以不要拉
Odbcint.dll
Odbctrac.dll
一个都不能少!
如果主机上有ODBC那你是不容易覆盖它的,如果你感觉还是自己装比较保险,可以把这些文件复制到任何一个包含在Path中的目录里
所有需要的运行时刻库和文件路径都加入path中,在制作规范的安装程序时,主程序和相应的PBD(DLL)和相应的PB运行时刻库位于同一个目录里,ODBC driver和sql anywhere位于单独的目录里。千万不要混在一起,(因为太难看拉)
用installshield要完成的工作
1.安装界面定制
2.文件复制
3.更改注册表
4.更新autoexec
(这些库是在95;下找出来的,98下我没有是试过)
下面讲的就是如何使用installshield5东方版拉
我只有这个版本,不过它支持中文,挺好的。
如果你没有,可以试试从这down一个。
ftp://202.196.64.9/pub/InstallShield/IS5EAST.exe
ftp://202.196.64.9/pub/InstallShield/serialno.txt
1)先用project WIZARD做一个新的项目
在选择需要的对话BOX时最好全选上,这些对话BOX去好去,加就有点麻烦拉。
安装类型中选上缺省的三种,就是compact,typical,custom,将来不要也可以删掉。
其他都用缺省的,以后到项目里改。
点击完成后,小功告成,现在有一个空项目拉!
2)左中靠下的这些tab page是很重要的
a、scripts ……这就是你的setup脚本,语法不知道象c还是更象pascal。scripts你是不能不接触的,否则你就只能做点小东西。is的script还是很强大的,也很有趣,在连载XXX中会讲一讲。
b、component ……元件嘛,叫组件比较合适。这里定义的就是你在选择安装类型时(就是custom时)用户看到的东西,把他们改成中文吧。
这里可以添加新的com,删除已有的com,改名字,如果你不喜欢用菜单,点点老鼠右键。
它们的具体属性系统都有很直接的提示,自己去研究吧。
Destination指的是文件的安装目的地,其中可以用户自定义目的,这个在在连载XXX中会讲一讲。
有个include file group这是怎么一回事呢?
c、file group ……原来是它。原来文件不是直接连接到component上,而是文件先连接到file group里,再由File group连接到component上。文件-》file group-》component。
file group取什么名字都没有关系,在安装时用户看不到,用户只看到component
d、Setup Type ……不要改成中文名字,安装时自动变成中文的。
e、resource ……里的东西是项目安装定义,不要忽视了
f、Setup file ……把安装一开始的欢迎界面的bmp加进来,旧的删掉吧,其实根本不用改什么,只要把项目目录里的setup.bmp换掉就好了。其他的东西我没有研究过。
g、Media ……讲不出什么,我根本没有动过它。
3)好了,先编译一下吧,喂,什么都没加呢!没关系,编译一下有点成就感。用media build wizad生成安装文件,运行一下看看。
(IS博大精深,我也是只知道一些皮毛,有什么需要补充的地方,请大虾抛玉)
终于要讲scripts了
scripts可是大小写敏感的!
“\”是转义字符,就相当与PB的“'”
“\r\n\t”等
变量类型:
BOOL TRUE or FALSE
CHAR 8-bit 有符号字符
DWORD 同NUMBER
HWND 窗口句柄(内部类型是NUMBER)
INT 同NUMBER
LIST 指向InstallShield list的指针(内部类型是NUMBER)
LONG 同NUMBER
LPSTR 同POINTER
NUMBER 有符号4字节整数
POINTER 指向数据的指针(如int i;p=&i)
SHORT 同NUMBER
STRING 字符串
赔本大甩卖!
字符串的操作:
(1) "+" 加
"123"+"345" = "123345" (12345)
"\\123"+"\\345" = "\\123\\345" (\123\345)
(2) "^" 路径加
"123"^"345" = ".\\123\\345" (.\123\345)
"\\123"^"345" = "\\123\\345" (\123\345)
"\\123"^"\\345" = "\\123\\345" (\123\345)
如果你弄不清楚,就用“+”吧
(3) "%" str1 % str2
if str1包含str2 then true else false
和StrFind (str1, str2)一样
1-函数(Function)***************函数(Function)
举个例子:
//函数声明
prototype RectangleArea (INT,INT);
//函数体
function RectangleArea (nLength, nWidth) //函数名
INT nVal; //局部变量定义
begin
nVal = nLength * nWidth; //函数体
return nVal;
end;
2-循环*******************循环
I、for循环
a、正循环
for iCount = 1 to 10 //step 1
MessageBox ("You'll see this 10 times", INFORMATION);
endfor;
b、负循环
for j = 20 downto 10 step 5
MessageBox ("You will see this three times", INFORMATION);
endfor;
II、repeat……until循环
nCount = 1;
repeat
MessageBox("Count is less than 5", INFORMATION);
nCount = nCount + 1;
until (nCount = 5);
III、while……endwhile循环
nCount = 1;
while (nCount < 5)
MessageBox ("This is still true.", INFORMATION);
nCount = nCount + 1;
endwhile;
3-判断**********************判断
a、
if (szStringA = "exit") then
AskYesNo ( "Are you sure you want to exit?" , NO );
endif;
b、
if (condition) then
// statements to be executed if condition is true
else
// statements to be executed if condition is false
endif;
c、
if (first condition) then
// statements to be executed if condition is true
elseif (second condition) then
// statements to be executed if condition is false
elseif (third condition) then
// statements to be executed if third condition is false
endif;
d、
if condition goto labelname;
……to be continued
系统变量有时候是很方便的!
跳楼大拍卖!!!
BATCH_INSTALL 指示当传输文件采用LOCKEDFILE或SHAREDFILE时是否锁定文件
CMDLINE Setup.exe传递的命令行参数
COMMONFILES Common files全路径如“c:\program file\common files”
ERRORFILENAME
FOLDER_DESKTOP Windows 95 或Windows NT 4.0桌面folder的路径
FOLDER_PROGRAMS Windows 95 或Windows NT 4.0 开始菜单中 开始\程序 的folder
FOLDER_STARTMENU Windows 95 或Windows NT 4.0 开始菜单中 开始 的folder
FOLDER_STARTUP Windows 95 or Windows NT 4.0 开始菜单中 启动 的folder
INFOFILENAME InstallShield创建的备份文件全文件名
ISRES _isres.dll全文件名
ISUSER _isuser.dll全文件名
ISVERSION 版本
MEDIA 当前Media库名
MODE 指示程序运行于normal还是silent模式
PROGRAMFILES Windows 95 or Windows NT 4.0 “Program files” folder
SELECTED_LANGUAGE 安装选择的语言号
SRCDIR 安装源目录的全路径
SRCDISK 安装源目录的盘符
SUPPORTDIR 临时文件路径
TARGETDIR 安装目的目录的全路径
TARGETDISK 安装目的目录的盘符
UNINST unInstallShield程序用的反安装文件全文件名
WINDIR Windows的全路径(c:\windows)
WINDISK Windows位于的盘符
WINSYSDIR Windows\system的全路径(c:\windows\system)
WINSYSDISK Windows\system位于的盘符
………………to be continued
|
|
|
产品库推荐 |
|