小编Jan*_*ber的帖子

如何将nil传递给var参数?

有很多API例程将指向某个变量的指针作为转换为var参数的参数,但可以根据Windows帮助文件指定为nil指针.

例如,ChangeDisplaySettings函数声明为:

function ChangeDisplaySettings(var lpDevMode: TDeviceMode; dwFlags: DWORD): Longint; stdcall;
Run Code Online (Sandbox Code Playgroud)

但Windows帮助文件明确指出"在动态模式更改后,为lpDevMode参数传递NULL是返回默认模式的最简单方法." 正确的翻译应该是:

function ChangeDisplaySettings(lpDevMode: PDeviceMode; dwFlags: DWORD): Longint; stdcall;
Run Code Online (Sandbox Code Playgroud)

我发布这个问题和答案,以帮助新手解决这些问题,而无需重新声明功能.我还记得在开始时这对我来说是一个问题.

delphi delphi-7

7
推荐指数
2
解决办法
1232
查看次数

准确的JSON文本编码检测

RFC4627 中描述了一种在 BOM 不存在时识别 Unicode 编码的方法。这依赖于 JSON 文本中的前 2 个字符始终是 ASCII 字符。但在RFC7159中,规范将JSON文本定义为“ws value ws”;意味着单个字符串值也是有效的。因此第一个字符将是起始引号,但随后可以是字符串中允许的任何 Unicode 字符。考虑到 RFC7159 也不鼓励使用 BOM;不再描述从前 4 个八位位组(字节)检测编码的过程,应该如何检测呢?UTF-32 应该仍然可以正常工作,如 RFC4627 中所述,因为第一个字符是四个字节并且应该仍然是 ASCII,但是 UTF-16 呢?第二个(2 字节)字符可能不包含零字节以帮助识别正确的编码。

json

5
推荐指数
1
解决办法
3303
查看次数

标签 统计

delphi ×1

delphi-7 ×1

json ×1