HWND abc = 0x100;这不起作用,我理解为什么。怎么办呢?

时间:2009-06-09 17:02:02

标签: c++ pointers

我有一个HWND变量,我想指向一个硬编码值,仅用于测试目的。我猜HWND是(int *)的typedef,因此导致某种间接性。正确的代码应该是什么样的?

3 个答案:

答案 0 :(得分:7)

HWND abc = (HWND)(0x100);

无论如何,糟糕的主意,但你已经知道了。

答案 1 :(得分:5)

你可以这样做:HWND hWnd = reintrepret_cast<HWND>(0x100);。使用显式强制转换,以便在代码中轻松找到。

答案 2 :(得分:2)

您无法对HWND值进行硬编码。充其量,它不会引用现有窗口。在最坏的情况下,它会引用系统中的一些随机窗口。

编辑:要明确,使用硬编码值运行的任何测试都将毫无意义。您的程序将该HWND用于某事。一旦它将硬编码的HWND传递给API函数,该函数将失败(最好的情况)或者它将在随机进程中引起随机的,不可预测的影响(最坏的情况)。