[英]Loading an image using DevIL and OpenGL in C++
如标题所示,在将其传递给OpenGL之前,我尝试使用DevIL加载图像。 我正在使用这段代码作为错误控制
const char* filename = "back.bmp";
if (!ilLoadImage(filename))
{
throw runtime_error(std::string("Unable to load image") +filename);
}
对于if语句,返回错误
error C2664: 'ilLoadImage' : cannot convert parameter 1 from 'const char *' to 'const wchar_t *'
如果我将filename
定义为const wchar_t* filename
, const wchar_t* filename
收到错误消息
error C2664: 'ilLoadImage' : cannot convert parameter 1 from 'const char *' to 'const wchar_t *'
因此,现在我不会对为什么[filename] .bmp文件的类型为wchar_t *或wchar_t是什么感到好奇,这让Google感到困惑,我只想问我必须使它起作用:为什么不起作用? 我错过了什么? 我敢肯定,对此必须有一个很短的解决方案。 看起来就像是那种错误。
谢谢。
如果使用Unicode函数,则必须使用Unicode文本。 具体来说, L
将返回静态文本的宽字符表示形式:
ilLoadImage(L"back.bmp");
如果要同时为ANSI和宽字符串同时编译代码,请改用_T()
,它返回正确的字符串类型:
ilLoadImage(_T("back.bmp"));
如果是后一种情况,并且在编译时不知道需要哪种类型的char
,请使用TCHAR
,它是CHAR
还是WCHAR
取决于是否定义了UNICODE
。
如果您使用的是Visual Studio,请尝试将项目更改为使用多字节字符集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.