将常量字符转换为 LPTSTR

发布于 2024-12-25 13:37:36 字数 645 浏览 1 评论 0原文

我已经寻找过类似的问题,但没有一个是在我需要的上下文中。奇怪的是,我收到了这个错误,但以相同方式在代码中设置的另一个项目似乎工作得很好。

我试图将图像加载到 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\coursework\main.cpp (291):错误C2664:'loadTexture':无法将参数1从'const char [24]'转换为'LPTSTR'”

如上所述,我拥有的另一个程序似乎允许它因此,如果有一种方法可以修复它并运行它,我们将不胜感激:)

I have looked for similar problems but none are in the context I require. The odd thing with this is that I get this error yet a different project set out in code the same way seems to work perfectly.

I am trying to load images into textures in openGL and have a function which takes in this parameter:

GLuint loadTexture(LPTSTR szFileName);

I then call it like this:

textureLib[0]= loadTexture("texturelib/texture1.bmp");
textureLib[1]= loadTexture("texturelib/texture2.bmp");
textureLib[2]= loadTexture("texturelib/texture3.bmp");
textureLib[3]= loadTexture("texturelib/texture4.bmp");

it then says "1>e:\usb\uni work\graphics\coursework\coursework\main.cpp(291): error C2664: 'loadTexture' : cannot convert parameter 1 from 'const char [24]' to 'LPTSTR'"

As stated above another program that I have seems to allow it so if there is a way of just fixing it to run it that would be appreciated :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水水月牙 2025-01-01 13:37:36

LPTSTRchar*wchar_t*,具体取决于是否设置了 Unicode 宏(UNICODE_UNICODE)。如果您要向该函数传递文字,则不应使用它(而应使用 LPCTSTR,即 const char/wchar_t*)。更改签名后,使用 _T()TEXT() 宏将文字与类型匹配,即

GLuint loadTexture(LPCTSTR filename);
loadTexture(TEXT("texturelib/texture1.bmp"));

LPTSTR is either char* or wchar_t*, depending on whether Unicode macros are set (UNICODE, _UNICODE). And if you're passing literals to that function, you should not use it (and use LPCTSTR instead, which is const char/wchar_t*). After you change the signature, use _T() or TEXT() macro to match the literals to the type, i.e.

GLuint loadTexture(LPCTSTR filename);
loadTexture(TEXT("texturelib/texture1.bmp"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文