一些外部库,特别是 Windows API,使用结构类型,其中一些字段是指向字符数组的指针。
Inno Setup Unicode 没有
PChar
(PWideChar
) 类型。如何定义使用宽字符数组指针类型字段的结构?
SHFILEOPSTRUCT
结构?
type
TSHFileOpStruct = record
hwnd: HWND;
wFunc: UINT;
pFrom: // what type?
pTo: // what type?
fFlags: Word;
fAnyOperationsAborted: BOOL;
hNameMappings: HWND;
lpszProgressTitle: // what type?
end;
使用
string
类型。在 Inno Setup Unicode Pascal 脚本中,在某些上下文中,string
类型会自动编组为 PWideChar
类类型:
record
定义中(问题是什么)。external
函数的参数和返回类型声明中。所以
SHFILEOPSTRUCT
结构的定义是:
type
TSHFileOpStruct = record
hwnd: HWND;
wFunc: UINT;
pFrom: string;
pTo: string;
fFlags: Word;
fAnyOperationsAborted: BOOL;
hNameMappings: HWND;
lpszProgressTitle: string;
end;
使用方法请参阅Inno Setup调用或复制本机Windows文件复制操作。
在所有(?)其他上下文中,
string
保持其来自 Pascal 语言的独特内在功能。