Const Char to LPTSTR
Я искал подобные проблемы, но ни одна не в контексте, который мне нужен. Странно то, что я получаю эту ошибку, но другой проект, изложенный в коде таким же образом, кажется, работает отлично.
Я пытаюсь загрузить изображения в текстуры в 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 " "
Как уже говорилось выше, другая программа, которая у меня есть, кажется, разрешает это, поэтому, если есть способ просто исправить это, чтобы запустить его, это было бы желательно:)
1 ответ
LPTSTR
либо char*
или же wchar_t*
в зависимости от того, установлены ли макросы Unicode (UNICODE
, _UNICODE
). И если вы передаете литералы этой функции, вы не должны использовать ее (и использовать LPCTSTR
вместо этого, который const char/wchar_t*
). После изменения подписи используйте _T()
или же TEXT()
макрос для соответствия литералов типу, т.е.
GLuint loadTexture(LPCTSTR filename);
loadTexture(TEXT("texturelib/texture1.bmp"));