Выберите номер порта от 49 152 до 65 535.
IANA публикует список в настоящее время назначенных портов.
http://www.iana.org/assignments/port-numbers
Динамические и/или Частные порты являются Частными портами от 49 152 до 65 535. Это - диапазон от того, где НЕОБХОДИМО выбрать порт для внутренних приложений. Конечно, любой порт, принадлежащий одному из неназначенных диапазонов в опубликованном списке, может использоваться. Но знайте что путем выбора номера порта от тех неназначенных диапазонов нет никакой гарантии вообще, что порт, который Вы выбираете, не будет зарезервированным портом в будущем.
НЕНАЗНАЧЕННЫЕ НОМЕРА ПОРТОВ НЕ ДОЛЖНЫ ИСПОЛЬЗОВАТЬСЯ. IANA ПРИСВОИТ НОМЕР ДЛЯ ПОРТА ПОСЛЕ ТОГО, КАК ВАШЕ ЗАЯВЛЕНИЕ БУДЕТ ПРИНЯТО.
И удостоверяются, что номер порта, который Вы выбираете, настраивается, как Вы заявили:
, Что порт будет встроен в файлы конфигурации для сервиса и клиентов, которые используют сервис.
Это избежит головных болей в случае, если некоторая другая третья сторона you-cannot-touch программное обеспечение использует Ваш номер порта. Если это происходит, Вы просто идете вперед и изменяете его на конфигурационном файле, и это просто работает.
Когда у вас есть функция адрес (как вы это сделали в обновленном вопросе), вы можете попробовать преобразовать его в указатель функции и вызвать его:
(*(BOOL (*)(HWND))0x76600454)((HWND)0x00021c0e)
Первая часть приводит адрес к BOOL (*) (HWND)
, который является указателем на функцию, принимающую параметр HWND
и возвращающую BOOL
. Затем указатель на функцию разыменовывается и вызывается. Убедитесь, что параметры выставлены правильно, иначе могут случиться неприятности. В 64-битных системах HWND
может быть 64-битным, поэтому вы не сможете обойтись без передачи параметра как int
.
Изменить: См. Комментарии для полной истории.
Я считаю, что проблема в том, что C ++ EE не может разрешить контекст DestroyWindow. Попробуйте следующее
{,,user32}DestroyWindow(0x00021c0e);
Я не уверен, поддерживает ли синтаксис вызова метода этот стиль квалификации (раньше он использовался только для приведения типов). Но стоит попробовать.
РЕДАКТИРОВАТЬ Вам может потребоваться, а может и не потребоваться добавить! после закрытия}. Прошло некоторое время с тех пор, как я использовал этот синтаксис, и я часто путаю его с эквивалентным синтаксисом windbg.
Я нашел обходной путь, но все же предпочел бы получить Immediate Window
Обходной путь:
DestroyWindow
шаг назад вверх по стеку вызовов к вызывающему DestroyWindow
, который выглядит следующим образом:
6D096A9D push ecx
6D096A9E call dword ptr ds: [6D0BB4B8h]
установите точку останова на инструкции push ecx
и очистите ее на DestroyWindow
ecx
ecx
в отладчике на желаемое значение и перейдите к push / call
ecx
и используйте инструкцию Set Next, чтобы вернуться к push
, затем продолжить . Это долго, но работает. Предполагается, что вы можете заставить приложение вызывать соответствующий API по желанию.