簡體   English   中英

HWND abc = 0x100; 這行不通,我知道原因。 那怎么辦呢?

[英]HWND abc = 0x100; This does not work, and I understand why. How to do it then?

我有一個HWND變量,我想指向一個硬編碼的值,僅用於測試目的。 我猜HWND是(int *)的typedef,因此導致某種間接性。 正確的代碼應該是什么樣的?

HWND abc = (HWND)(0x100);

無論如何,這是個壞主意,但您已經知道了。

您可以執行以下操作: HWND hWnd = reintrepret_cast<HWND>(0x100); 使用顯式強制轉換,以便在代碼中輕松查找。

您不能對HWND值進行硬編碼。 充其量,它不會引用現有的窗口。 最糟糕的是,它會引用系統中的一些隨機窗口。

編輯:明確地說,使用硬編碼值運行的任何測試都是沒有意義的。 你的程序使用HWND的東西 一旦將硬編碼的HWND傳遞給API函數,該函數將失敗(最佳情況),或者將在隨機過程中導致隨機的,不可預測的影響(最壞的情況)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM