Вам повезет, что ваша программа не сработала сразу. Функция GetCursorPos
получает LPPOINT
в качестве параметра, но это не значит, что вы должны объявлять переменную этого типа. Вместо этого вы должны сделать это:
POINT point;
if (GetCursorPos(&point)) {
cout << point.x << "," << point.y << "\n";
}
Причина в том, что ваш LPPOINT во время вызова является указателем, который указывает «куда-то», и никто не может сказать, куда он указывает. Так что вполне возможно, что он указывает на доступную только для чтения память, и Windows так приятно проверить это и не записывать в эту память, а вместо этого возвращает FALSE
. Вы не проверяли возвращаемое значение вызова функции, поэтому не можете знать, был ли он успешным или нет.