gpt4 book ai didi

c++ - C++ 中的 DevIL 和 OpenGL

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:58:48 25 4
gpt4 key购买 nike

我正在使用 DevIL 编写 C++ OpenGL 项目,但在尝试找出如何加载图像以用作纹理时出现编译时错误。

到目前为止我有这个

//Declarations
const char* filename = "back.bmp";
ILboolean ilLoadImage(const char *filename);

ILuint image;
ilGenImages(1, &image);
ilBindImage(image);

//Load the image
if (!ilLoadImage(filename))
{
throw runtime_error("Unable to load image" +filename);
}

向我显示错误:error C2110: '+' : cannot add two pointers

如果我将 filename 的声明更改为 string filename = "back.bmp"; 并将 if 语句更改为

if (!ilLoadImage(const_cast<char*>(filename.c_str())))

我收到此链接器错误 error LNK1104: cannot open file 'DevIL.libkernel32.lib'

我确定我已将所有 DevIL 文件放在需要的位置,并在 Project->Properties->Linker->Input->Additional Dependencies 中添加了依赖项。

最佳答案

通过确保添加 C++ 字符串 而不是 C 字符串 来修复编译错误

throw runtime_error(std::string("Unable to load image") +filename);

通过在附加依赖项中的库之间放置一个空格来修复链接错误。

此外,如果您必须使用 const_cast,很可能您做错了。

ILboolean ilLoadImage(const char *filename);

您不需要转换为 char * 来传递 .c_str() - .c_str() 返回一个 const char *

关于c++ - C++ 中的 DevIL 和 OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5686814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com