【发布时间】:2013-03-28 08:27:06
【问题描述】:
在 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(我认为是无符号整数)是否安全?
【问题讨论】:
-
我强烈建议您使用转换为
WParam,它应该在两种环境中都可以编译。
标签: delphi