上一页 | 目录 | 下一页

B.2 库的安装

B.2.1 介绍

InstallLib 宏用来安装一个库。如果在安装过程中发生了错误将会放置一个错误标记。

如果需要询问用户是否重新启动计算机,可以使用带一个完成页面的 MUI 或使用 IfRebootFlag 并在你自己的页面或对话框上进行提示。

B.2.2 参数

库类型 是否共享 安装方式 本地文件 目标文件 临时目录

库类型

The type of the library

DLL - 动态链接库 (DLL)
REGDLL - 要注册的 DLL
REGEXE - 使用 /regserver 注册的 EXE COM 服务程序
TLB - 类型库或包含类型库(LIBRARY)的 DLL
REGDLLTLB - 要注册并包含类型库的 DLL

是否共享

指定要安装的库是否与其它应用程序共享

NOTSHARED - 该库不共享
$VARNAME - 当应用程序第一次安装时为空, 安装时将使共享库计数增加。

安装方式

指定安装方式

REBOOT_PROTECTED

NOREBOOT_PROTECTED

REBOOT_NOTPROTECTED

NOREBOOT_NOTPROTECTED

本地文件

编译时文件的位置

目标文件

在用户的系统里需要更新文件的位置

临时目录

当系统需要重新启动时用来保存临时文件的目录。

要支持 Windows 9x/ME ,该目录应该和目标文件位于同一个磁盘区(volume)里。 Windows 临时目录可以位于任何磁盘区(volume),所以你不能使用该目录。

B.2.3 选项

在插入 InstallLib 宏之前,定义以下内容,可以更改它们原来定义的操作。

B.2.3.1 LIBRARY_X64

B.2.3.2 LIBRARY_SHELL_EXTENSION

B.2.3.3 LIBRARY_COM

B.2.3.4 LIBRARY_IGNORE_VERSION

B.2.4 注意事项

B.2.5 例子

B.2.5.1 取消共享 DLL

 !insertmacro InstallLib REGDLL NOTSHARED REBOOT_NOTPROTECTED dllname.dll $SYSDIR\dllname.dll $SYSDIR

B.2.5.2 共享 DLL

 ;如果应用程序已安装,请把 $ALREADY_INSTALLED 设为一个非零的值。
 ;例如:

 IfFileExists "$INSTDIR\MyApp.exe" 0 new_installation ;Replace MyApp.exe with your application filename
   StrCpy $ALREADY_INSTALLED 1
 new_installation:

 !insertmacro InstallLib REGDLL $ALREADY_INSTALLED REBOOT_NOTPROTECTED dllname.dll $SYSDIR\dllname.dll $SYSDIR

上一页 | 目录 | 下一页