【发布时间】:2009-06-09 17:02:02
【问题描述】:
我有一个 HWND 变量,我想指向一个硬编码值,仅用于测试目的。我猜 HWND 是 (int*) 的 typedef,所以这会导致某种间接。正确的代码应该是什么样的?
【问题讨论】:
-
不工作是指不编译或执行失败?
我有一个 HWND 变量,我想指向一个硬编码值,仅用于测试目的。我猜 HWND 是 (int*) 的 typedef,所以这会导致某种间接。正确的代码应该是什么样的?
【问题讨论】:
HWND abc = (HWND)(0x100);
无论如何,这是个坏主意,但你已经知道了。
【讨论】:
你可以这样做:HWND hWnd = reintrepret_cast<HWND>(0x100);。使用显式强制转换,以便在代码中轻松找到。
【讨论】:
您不能对 HWND 值进行硬编码。充其量,它不会引用现有的窗口。在最坏的情况下,它会引用系统中的某个随机窗口。
编辑:需要明确的是,您使用硬编码值运行的任何测试都将毫无意义。您的程序将该 HWND 用于 something。一旦它将硬编码的 HWND 传递给 API 函数,该函数要么会失败(最好的情况),要么会在随机过程中导致随机的、不可预测的影响(最坏的情况)。
【讨论】: