Delphi 2007 と Delphi XE2 で HDC タイプ (デバイス コンテキスト ハンドル) を宣言する方法に違いはありますか。
D2007 では次のコードは正常に動作しますが、DXE2 では範囲チェック エラーが発生します。
Control.Parent.Perform(WM_PAINT, Integer(DC), 0);
D2007 でコードをステップ実行すると、DC (デバイス コンテキスト) の値は常に MaxInt よりも小さいように見えますが、DXE2 では DC の値は通常 MaxInt より大きくなります。
同じマシン (同じプロジェクト、同じコード、同じ OS) で実行すると、D2007 と DXE2 で DC の値が異なるのはなぜですか?
代わりに DC を WParam (符号なし整数だと思います) にキャストしても安全ですか?