Inno Setup 获取宽字节类型的字符串

因为 Inno Setup 没有提供 PWideChar 类型(Dephi 中有?),而只提供了 PAnsiChar,如果需要接收第三方 dll 返回的宽字节类型(如: C++ 的 wchar_t * 或者 LPWSTR 类型),使用 PAnsiChar 只能接收到第一个字符,如果需要获取完整的字符串内容,就我们需要自己处理。 处理的思路也很简单: 第一步:获取到字符串首字符的地址; 用 Cardinal 类型来接收字符串的首地址,为了方便理解,直接把 Cardinal 定义为 PWideChar 类型,如 第二步:获取字符串的长度; 通过调用 windows 系统 api 中的 lstrlenW() 方法来获取字符串的长度,返回类型也是 Cardinal: 第三步:生成一个长度为上述获取到的字符串长度的字符串变量; 通过 SetLength() 方法,设定字符串变量的长度; 第四步:把获取到的字符串的内容拷贝到这个新的字符串变量中; 通过调用 lstrcpyW() 方法: 实现例子: 这里通过 GetCommandLineW() 方法来测试 参考: How can I dereference a […]