用OPENGL载入位图中出现的 不能将参数 1 从“char *”转换为“LPCWSTR”问题。
请教各位大侠,我在学习NEHE的OPENGL教程,学到第六课中的载入位图和纹理时,发现auxDIBImageLoad(Filename)函数无法通过编译,原因是:不能将参数 1 从“char *”转换为“LPCWSTR”,我用的是VS2010,前面的程序都是用GLUT写的,这个函数是用的GLAUX,不知道是不是因为这个的原因出错。上网找了下原因,有人说改项目设置改成“多字节字符集”就可以,可是我改了之后又出新问题:无法解析的外部符号 _auxDIBImageLoadA@4,该符号在函数 "struct _AUX_RGBImageRec * __cdecl LoadBMP(char *)" (?LoadBMP@@YAPAU_AUX_RGBImageRec@@PAD@Z) 中被引用,真不知道改这个设置为什么会出现这样的错误?另请问各位,GLUT和GLAUX到底有什么区别和联系?
AUX_RGBImageRec *LoadBMP(char *Filename)// Loads A Bitmap Image
{
FILE *File=NULL;// File Handle
if (!Filename)// Make Sure A Filename Was Given
{
return NULL;// If Not Return NULL
}
File=fopen(Filename,"r");// Check To See If The File Exists
if (File)// Does The File Exist?
{
fclose(File);// Close The Handle
return auxDIBImageLoad(Filename);// Load The Bitmap And Return A Pointer
}
return NULL;// If Load Failed Return NULL
}
[解决办法]
能直接运行时要有条件的,nehe的这个代码是属于编码风格很不好的,严格限制必须是不在unicode平台才行。我上面已经告诉你怎么改了,你自己照着改即可
如果不会改,在工程设置中慢慢找,把其中关于编码的设置从unicode改为mbcs
用OPENGL载入位图中出现的 不能将参数 1 从“char *”转换为“LPCWSTR”有关问题
用OPENGL载入位图中出现的 不能将参数 1 从“char *”转换为“LPCWSTR”问题。请教各位大侠,我在学习NEHE的OPEN
