C++错误 C2061:语法错误:标识符'FILE' jpeglib 问题?

C++ error C2061: syntax error : identifier 'FILE' jpeglib issue?

本文关键字:错误 jpeglib 问题 FILE 语法 C++ C2061 标识符      更新时间:2023-10-16

我正在遵循一个演练,需要 http://www.ijg.org/的 jpeglib。在 jpegsr9a 中安装文件并添加利用这些文件的代码后.zip编译后出现以下错误:

1>  jpeg.cpp
1>c:librariesjpegjpegsr9ajpegjpeglib.h(974): error C2061: syntax error : identifier 'FILE'
1>c:librariesjpegjpegsr9ajpegjpeglib.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);

任何想法将不胜感激。

当您看到它无法识别标识符时,在检查标识符名称中的拼写错误后,寻找丢失的 #include。

由于无法识别的变量是 FILE,它是标准库中输入/输出接口的一部分,因此所需的文件是 。

如果你还不知道,你会怎么弄清楚? 查看 FILE 的文档/帮助,或使用 FILE 的函数。 他们应该指定需要哪个头文件。

您的第二个错误 C2143 看起来也是一个缺失的 #include。 它位于5号线。 请看第 5 行。 第一个 * 位于标识符 tImageJPG 之后。 如果编译器无法识别 tImageJPG,则它不会期望在它后面出现类似"*"的东西。 这是你的类型定义吗? 我没有在我在网上找到的jpeglib.h副本中看到它,你显然包括jpeglib.h。 也许有一个来自您自己的项目的头文件,您需要在此处包含该文件。 或者也许它还没有被定义,typedef 仍然需要编写。