нужно const char unsigned * преобразовать каким то образом к типу LPCWSTR.
Для вывода информации из glGetString.
MultiByteToWideChar говорит что ей нужнен signed char
Здравствуйте, pingved, Вы писали:
P>нужно const char unsigned * преобразовать каким то образом к типу LPCWSTR.
P>Для вывода информации из glGetString.
P>MultiByteToWideChar говорит что ей нужнен signed char
А откуда взялся unsigned char? Возможно, в настройках проекта C/C++/Language установлено Default Char Unsigned : Yes? Тогда просто установить No и все. В крайнем случае можно применить reinterpret_cast, но это только если другого выхода не останется.
[Оффтоп] Классный ник — pingved
Здравствуйте, rg45, Вы писали:
P>>нужно const char unsigned * преобразовать каким то образом к типу LPCWSTR.
P>>Для вывода информации из glGetString.
glGetString выдаёт указатель типа const GLubyte*, где GLubyte, по-видимому, определён как
unsigned char. (Я бы рассматривал это как баг библиотеки или её биндинга к C++ — по идее, для текстовых строк и клиенту, и библиотеке должна быть глубоко фиолетова знаковость char’а.)
P>>MultiByteToWideChar говорит что ей нужнен signed char
Неправильно. В header’ах и MSDN написано, что MultiByteToWideChar принимает параметр типа LPCSTR, который определён как const CHAR *, где CHAR определён как
char.
R>А откуда взялся unsigned char? Возможно, в настройках проекта C/C++/Language установлено Default Char Unsigned : Yes? Тогда просто установить No и все. В крайнем случае можно применить reinterpret_cast, но это только если другого выхода не останется.
Вообще по стандарту (3.9.1/1)
char,
signed char и
unsigned char — это
три разных типа, не конвертируемых неявно друг в друга; параметр Default Char Unsigned влияет только на
char. Поэтому, если у нас есть буфер
signed char или
unsigned char, то (по стандарту) при передаче его в параметр типа const
char* каст в любом случае понадобится.