Const Char to LPTSTR - PullRequest
       24

Const Char to LPTSTR

0 голосов
/ 06 января 2012

Я искал похожие проблемы, но ни одна из них не соответствует нужному мне контексту. Странно то, что я получаю эту ошибку, но другой проект, изложенный в коде таким же образом, кажется, работает отлично.

Я пытаюсь загрузить изображения в текстуры в 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] »в "ЛПЦТР" "

Как указано выше, другая программа, которую я имею, разрешает это, поэтому, если есть способ просто исправить это, чтобы запустить его, это было бы полезно

1 Ответ

1 голос
/ 06 января 2012

LPTSTR имеет значение char* или wchar_t*, в зависимости от того, установлены ли макросы Unicode (UNICODE, _UNICODE).И если вы передаете литералы этой функции, вы не должны использовать ее (и вместо этого использовать LPCTSTR, то есть const char/wchar_t*).После изменения подписи используйте макрос _T() или TEXT(), чтобы сопоставить литералы с типом, например

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