繁体   English   中英

在C ++中使用DevIL和OpenGL加载图像

[英]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* filenameconst 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM