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