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"));
Другие вопросы по тегам