@sitev_ru
sitev.ru - мой блог ...

Почему GetVersionEx может работать неправильно?

OSVERSIONINFOEX ovi;

	ZeroMemory(&ovi, sizeof(OSVERSIONINFOEX));
	ovi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);

	GetVersionEx((OSVERSIONINFO*)&ovi);

	printf("dwMajorVersion = %d\n", ovi.dwMajorVersion);


Под Windows 10 выдаёт значение 6, хотя должно 10. Почему так?

P.S. Манифест отключен
  • Вопрос задан
  • 608 просмотров
Пригласить эксперта
Ответы на вопрос 2
15432
@15432
Системный программист ^_^
Согласно документации, начиная с Win8.1, эта функция возвращает версию из манифеста приложения, или 6.2 в случае его отсутствия
https://msdn.microsoft.com/ru-ru/library/windows/d...

Там же для определения версии системы рекомендуется использовать этот набор функций
https://msdn.microsoft.com/ru-ru/library/windows/d...
Ответ написан
Комментировать
@sitev_ru Автор вопроса
sitev.ru - мой блог ...
LPBYTE pinfoRawData{};
	if (NERR_Success == NetWkstaGetInfo(NULL, 100, &pinfoRawData))
	{
		WKSTA_INFO_100* pworkstationInfo = (WKSTA_INFO_100*)pinfoRawData;
		int major = pworkstationInfo->wki100_ver_major;
		int minor = pworkstationInfo->wki100_ver_minor;

		printf("major = %d\n", major);
		printf("minor = %d\n", minor);

		NetApiBufferFree(pinfoRawData);

	}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы