底线
我继承了一个相当大的InstallShield InstallScript安装程序,在处理其InstallScript(*.rul
)源文件时,我注意到变量和参数数据类型'套管变化 - 出现是相同的数据类型。例如,我看到类型为number
和NUMBER
,string
和STRING
等的变量和参数。
在我的实验中,大写和小写之间的变化似乎似乎无法发挥作用;安装程序项目编译方式;但我不确定这个故事是否会有更多内容。
InstallScript数据类型的外壳是否重要?如果确实如此,何时以及如何重要?
进一步背景
来自.NET,C#和C ++ / CLI,我理解long
and Int64
are comparable in C#, whereas long
and Int32
are comparable in C++/CLI;但是每一对中的后者都是不同的,即使它只需要using
命名空间的System
指令。我想在InstallScript中使用类似的grok类型。
答案 0 :(得分:1)
答案有时和取决于。
InstallScript语言参考的Data Types and Predefined Structures部分概述了数据类型大小写的规则,并指出某些数据类型可以用小写或大写字母输入"。
根据语言参考,超过2/3(13/18)的InstallScript数据类型在不区分大小写的情况下可以是大写或小写。
有趣的是,这些类型不能是混合大小写(即大写和小写的组合)。例如,String
(与STRING
或string
相比)会产生以下编译时错误:
Description Error Code
---------------------------------------- ----------
'String': expected typedef (struct) name C8017
同样根据语言参考,这里是区分大小写的(只有1/3(5/18))数据类型,只能是大写:
BOOL
HWND
LIST
LPSTR
LPWSTR
以小写形式输入这些数据类型会产生如下所示的编译时错误:
Description Error Code
---------------------------------------- ----------
'bool': expected typedef (struct) name C8017
除此之外,在允许的情况下是否使用大写或小写是优先考虑的问题。
答案 1 :(得分:0)
让我加上这个作为单独的答案来列出一些好的信息来源。
检查常见的Installshield运行时错误和错误:http://consumer.installshield.com/common.asp?source=all。正如我所说,基本MSI非常好,只需要避免使用Installscript MSI。
Installshield社区也很好:http://community.installshield.com/。正如Stefan Kruger(MSI MVP)installsite.org和社区forum.installsite.org一样。