Функция C ++ DevIL ilLoadImage — выход из программы, нарушение прав доступа

У меня есть путь к моему файлу, определенный таким образом:

const char* GROUND_TEXTURE_FILE = "objects/textures/grass.jpg";

А вот функция, которую я использую для загрузки изображения:

bool loadTexImage2D(const string &fileName, GLenum target) {
...
// this will load image data to the currently bound image
// at first, we must convert fileName, for ascii, this method is fine?
wstring file(fileName.begin(), fileName.end());

if(ilLoadImage(file.c_str()) == IL_FALSE) { //here the program falls

Что не так в моем коде? Почему программа падает, когда ilLoadImage называется? Я думаю что file.c_str() должен нормально работать как wchar_t * типа или нет? Спасибо за ответ 🙂

5

Решение

Как сказал автор, вы можете делать что угодно, не инициализируя lib: D

#include <iostream>
#include <IL/il.h>

int main ()
{
std::string filename = "objects/textures/grass.jpg";

ilInit();

if (!ilLoadImage(filename.c_str())) {
std::cout << ilGetError() << std::endl;
return 1;
}

std::cout << ilGetInteger(IL_IMAGE_WIDTH) << std::endl;
std::cout << ilGetInteger(IL_IMAGE_HEIGHT) << std::endl;

return 0;
}

построить:

g++ -Wall -pedantic --std=c++11 -g -o app main.cpp -lIL
0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector