GetFileSizeEx was not declared in this scope

Имеется установленная на windows XP среда разработки wxDev-C++

При обращении к функции  GetFileSizeEx компилятор выдает ошибку "'GetFileSizeEx' was not declared in this scope". Библиотека windows.h  подключена.

 

Решение.

В windows.h есть строки:

#if (_WIN32_WINNT >= 0x0500)
WINBASEAPI BOOL WINAPI GetFileSizeEx( HANDLE, PLARGE_INTEGER );
#endif

По непонятной причине в моем случае windows идентифицировала себя как  0x0400. Следовательно, проблема решается объявлением константы #define _WIN32_WINNT 0x0501  в заголовке до подключения библиотек.

 

См. также:

Visual C++ больше не поддерживает операционные системы Windows 95, Windows 98, Windows ME и Windows NT. Если макросы WINVER или _WIN32_WINNT принадлежат одной из этих версий Windows, необходимо будет их изменить. При обновлении проекта, созданного в более ранней версии Visual C++ могут возникнуть ошибки компиляции, связанные с макросами WINVER или _WIN32_WINNT, если они принадлежат версии Windows, которая больше не поддерживается.

Для изменения макросов добавьте приведенные ниже строки в файл заголовка.

#define WINVER 0x0500
#define _WIN32_WINNT 0x0500

Данная строка задает операционную систему Windows 2000. Другими допустимыми значениями являются 0x0501 для Windows XP, 0x0502 для Windows Server 2003, 0x0600 для Windows Vista и 0x0601 для Windows 7.

 

 

http://msdn.microsoft.com/ru-ru/library/6sehtctf.aspx