在 Inno Setup Unicode 中定义具有宽字符指针字段的结构

问题描述 投票:0回答:1

一些外部库,特别是 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; 
inno-setup pascalscript
1个回答
2
投票

使用

string
类型。在 Inno Setup Unicode Pascal 脚本中,在某些上下文中,
string
类型会自动编组为
PWideChar
类类型:

所以

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 语言的独特内在功能。

© www.soinside.com 2019 - 2024. All rights reserved.