У меня есть некоторый код, чтобы захватить дескриптор окна и затем получить его прямоугольник.
HWND hWnd = FindWindow("CalcFrame", NULL);
LPRECT rect;
int retval = GetWindowRect(hWnd, rect);
if (retval == 0) {
DWORD error = GetLastError();
std::cout << error << "\n";
} else {
std::cout << "FindWindow/GetWindowRect Success" << "\n";
}
Этот код работает нормально, и значения сохраняются в прямоугольнике, когда у меня нет операторов логирования.Когда я добавляю этот оператор регистрации сразу после ...
std::cout << rect->left << "," << rect->top << "," << rect->right << "," << rect->bottom << "\n";
, я получаю ошибку (код ошибки 1400) из метода GetLastError()
winapi, показывающую, что мы не смогли найти дескриптор окна и получить окнапрямоугольник.
Когда я использую этот оператор ведения журнала, я не получаю ошибку.
std::cout << "Right: " << rect->right << "\n";
std::cout << "Bottom: " << rect->bottom << "\n";
В чем может быть причина этого?