我已经寻找过类似的问题,但都不在我需要的上下文中。奇怪的是,我收到了这个错误,但以同样的方式在代码中设置的不同项目似乎可以完美地工作。
我正在尝试将图像加载到openGL中的纹理中,并有一个接受此参数的函数:
GLuint loadTexture(LPTSTR szFileName);
然后我这样称呼它:
textureLib[0]= loadTexture("texturelib/texture1.bmp");
textureLib[1]= loadTexture("texturelib/texture2.bmp");
textureLib[2]= loadTexture("texturelib/texture3.bmp");
textureLib[3]= loadTexture("texturelib/texture4.bmp");
然后它说"1>e:\usb\uni-work\graphics\coursework\corsework\main.cpp(291):错误C2664:"loadTexture":无法将参数1从"const char[24]"转换为"LPTSTR"
如上所述,我的另一个程序似乎允许它,所以如果有一种方法可以修复它来运行它,那将不胜感激:)
LPTSTR
是char*
还是wchar_t*
,具体取决于是否设置了Unicode宏(UNICODE
、_UNICODE
)。如果要将文字传递给该函数,则不应使用它(而应使用LPCTSTR
,即const char/wchar_t*
)。更改签名后,使用_T()
或TEXT()
宏将文字与类型匹配,即
GLuint loadTexture(LPCTSTR filename);
loadTexture(TEXT("texturelib/texture1.bmp"));