libjpeg — ошибка C ++ C2061: синтаксическая ошибка: проблема с идентификатором ‘FILE’ jpeglib?

Я следую за прогоном, который потребовал jpeglib от http://www.ijg.org/.
После установки файлов в jpegsr9a.zip и добавления кода, который использует файлы, я получаю следующие ошибки после компиляции:

1>  jpeg.cpp
1>c:\libraries\jpeg\jpegsr9a\jpeg\jpeglib.h(974): error C2061: syntax error : identifier 'FILE'
1>c:\libraries\jpeg\jpegsr9a\jpeg\jpeglib.h(975): error C2061: syntax error : identifier 'FILE'
1>c:\...\jpeg.h(5): error C2143: syntax error : missing ';' before '*'
1>c:\...\jpeg.h(5): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\...\jpeg.cpp(11): error C2065: 'pBitMap' : undeclared identifier
1>c:\...\jpeg.cpp(16): error C2065: 'pBitMap' : undeclared identifier
1>c:\...\jpeg.cpp(16): error C2227: left of '->sizeX' must point to class/struct/union/generic type
1>          type is 'unknown-type'

Их намного больше, но я думаю, что все они связаны с ошибками C2061. Похоже, я ошибся при добавлении библиотек?

Ниже приведены файлы заголовков в программе:

//heightfield.h

#include <Windows.h>

//jpeg.h

#include <Windows.h>
#include <jpeglib.h>
#pragma comment(lib, "jpeg.lib")

tImageJPG *SwiftLoadJpeg(const char *srFileName);

void SwiftTextureJpeg(unsigned int tTexture [], LPSTR strFileName, int ID);

Любые мысли будут с благодарностью.

0

Решение

Когда вы видите, что он не распознает идентификатор, после проверки на опечатку в имени идентификатора,
искать недостающий #include.

Поскольку нераспознанная переменная была FILE, которая является частью интерфейса ввода / вывода в стандартной библиотеке, необходим файл.

Как бы вы поняли это, если бы вы еще не знали? Посмотрите документацию / справку по FILE или по функциям, которые используют FILE. Они должны указать, какой заголовочный файл необходим.

Ваша вторая ошибка, C2143, выглядит так, как будто отсутствует #include. Это в строке 5. Посмотрите на строку 5. Первый * идет после идентификатора, tImageJPG. Если компилятор не распознает tImageJPG, он не будет ожидать чего-то вроде «*» после него. Это ваш typedef? Я не вижу его в копии jpeglib.h, которую я нашел в Интернете, и вы явно включаете jpeglib.h. Возможно, есть заголовочный файл из вашего собственного проекта, который вы должны включить сюда. Или, возможно, он еще не был определен, а typedef еще нужно написать.

1

Другие решения


По вопросам рекламы [email protected]