HWND abc = 0x100; Это не работает, и я понимаю, почему. Как это сделать тогда? - PullRequest
1 голос
/ 09 июня 2009

У меня есть переменная HWND, на которую я хочу указать жестко закодированное значение, только для целей тестирования. Я предполагаю, что HWND является typedef из (int *), так что вызывает некоторую косвенность. Каким должен быть правильный код?

Ответы [ 3 ]

7 голосов
/ 09 июня 2009
HWND abc = (HWND)(0x100);

В любом случае, плохая идея, но вы уже это знаете.

5 голосов
/ 09 июня 2009

Вы можете сделать: HWND hWnd = reintrepret_cast<HWND>(0x100);. Используйте явное приведение, чтобы его было легко найти в коде.

2 голосов
/ 09 июня 2009

Вы не можете жестко закодировать значение HWND. В лучшем случае это не будет ссылаться на существующее окно. В худшем случае это будет означать какое-то случайное окно в системе.

Редактировать: Для ясности, любые тесты, которые вы запускаете с использованием жестко заданного значения, будут бессмысленными. Ваша программа использует этот HWND для что-то . Как только он передает жестко запрограммированный HWND в функцию API, либо эта функция завершится с ошибкой (лучший вариант), либо она вызовет случайные непредсказуемые эффекты в случайных процессах (наихудший случай).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...