【发布时间】:2014-04-14 23:42:25
【问题描述】:
在这里,我正在解决在 VS2013 中使用 Glut 库时发生的错误。正如我所看到的 - 这是指针和引用的简单问题。所以,第 11 行的输出是:
## error C2664: 'AUX_RGBImageRec *auxDIBImageLoadW(LPCWSTR)' : cannot convert argument 1 from 'char [13]' to 'LPCWSTR'
指向的类型是不相关的;转换需要 reinterpret_cast、C-style cast 或 function-style cast
错在哪里?它必须是第 11 行中的 (*) 符号。
void TextureInit()
{
char strFile[]="Particle.bmp";
AUX_RGBImageRec *pImage;
/* Выравнивание в *.bmp по байту */
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
/* Создание идентификатора для текстуры */
glGenTextures(1,&TexId[0]);
/* Загрузка изображения в память */
pImage = auxDIBImageLoad(strFile);
/* Начало описания свойств текстуры */
glBindTexture(GL_TEXTURE_2D,TexId[0]);
/* Создание уровней детализации и инициализация текстуры
*/
gluBuild2DMipmaps(GL_TEXTURE_2D,GL_RGB,pImage->sizeX,
pImage->sizeY,GL_RGB,GL_UNSIGNED_BYTE,
pImage->data);
/* Задание параметров текстуры */
/* Повтор изображения по параметрическим осям s и t */
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
/* Не использовать интерполяцию при выборе точки на
* текстуре
*/
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
/* Совмещать текстуру и материал объекта */
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
}
【问题讨论】:
-
阅读
std::mbstowcs。或者使用宽字符开头。 -
项目属性/常规 - 将您的字符集更改为 MBCS。它默认为 Unicode,这就是导致您的问题的原因。