请看看我的第一天VC ++的结果。它包含我所知道的错误。我的问题是devil会出现错误,但尝试使用iluErrorString()将此错误解码为字符串会导致访问冲突......
#pragma comment(lib, "ILU.lib")
#pragma comment(lib, "ILUT.lib")
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <IL/il.h>
#include <IL/ilu.h>
#include <IL/ilut.h>
using namespace std;
int main(){
FILE *myFile;
ILuint fileSize;
ILubyte *Lump;
ilInit();
ILuint ImageName; // The image name to return.
ilGenImages(1, &ImageName); // Grab a new image name.
ilBindImage(ImageName); //bind the image
myFile = fopen("C:/Documents and Settings/Bartjan/Desktop/c++ meuq/test/Debug/image.png", "r"); //open the file for reading
if (myFile != NULL){
fseek(myFile, 0, SEEK_END); //get file size
fileSize = ftell(myFile);
Lump = (ILubyte*)malloc(fileSize); //allocate mem
fseek(myFile, 0, SEEK_SET); //set the file pointer
fread(Lump, 1, fileSize, myFile); //read the entire file into mem
fclose(myFile);
ilLoadL(IL_PNG, Lump, fileSize);
free(Lump);
}
ilDeleteImages(1, &ImageName); //delete the image
ILenum error;
while ((error = ilGetError()) != IL_NO_ERROR) {
cout << error << ": " << iluErrorString(error);
}
_getch();
return 0;
}
它咳出一个错误1285意味着它不理解这个:
ilLoadL(IL_PNG, Lump, fileSize);
我知道这一点。问题出在这里:
cout << error << ": " << iluErrorString(error);
这导致访问违规,我无法弄清楚原因?
答案 0 :(得分:1)
如果您没有像IL那样初始化ILU,则会出现此问题:
iluInit();
答案 1 :(得分:0)
这是因为iluErrorString总是和ilGetString一样返回0。