在 Delphi 2007 与 Delphi XE2 中声明 HDC 类型(设备上下文句柄)的方式是否存在差异。
在 D2007 中,以下代码工作正常,但在 DXE2 中产生范围检查错误:
Control.Parent.Perform(WM_PAINT, Integer(DC), 0);
单步执行 D2007 中的代码时,DC(设备上下文)的值似乎总是小于 MaxInt,但在 DXE2 中,DC 的值通常大于 MaxInt。
为什么 D2007 和 DXE2 在同一台机器上运行(相同的项目,相同的代码,相同的操作系统)时,DC 的值不同?
将 DC 转换为 WParam(我认为是无符号整数)是否安全?