Скорее всего, ошибка вызывает clobberd где-то в std::cout
.
Попробуйте:
if (Hwnd == NULL)
{
DWORD error = GetLastError(); // first thing we retrieve the error
std::cout << "Couldn't find window named \"" << INJ_PROC_NAME << "\": error-"
<< error << std::endl;
getchar();
return -1;
}
В любом случае необходимо сохранить номер ошибки сразу после сбоя, как показано выше.
Но истинная причина, по которой FindWindow
не удается, заключается в том, что он ищет не имя процесса , а заголовок окна , который похож на Untitled - Notepad
.
В противном случае, если FindWindow
не найдет окно, последняя ошибка на самом деле не установлена, несмотря на то, что претендует на документацию Microsoft.
Заключение
Использование FindWindow
, вероятно, не лучший подход, вам лучше перечислить процессы, как описано в этой документации Microsoft .