значение типа "const char *" нельзя присвоить сущности типа "LPCWSTR"
Пробовал включить многобайтовую кодировку, все равно эта ошибка. Что нужно сделать, чтобы каждый раз не приходилось писать (TEXT)?
WNDCLASSEX wc;
wc.lpszClassName = TEXT("WinMainClass");
Ответы (2 шт):
Это разные типы данных! LPCWSTR это wchar_t*(другой вид строк), а char* это однобайтовая строка. Вы можете использовать
TEXT("вашаСтрока")
Или
L"ваша строка"
Макрос TEXT сделан для облегчения задачи программиста.
В зависимости от того, является ли Ваш прожект unicode или ascii, он
даёт разные результаты:
а) если прожект unicode - то "разворачивается" в wchar_t*
б) если прожект ascii - то в char*
WNDCLASSEX так же в зависимости от кодировки прожекта становится либо
а) WNDCLASSEXW с полем LPCWSTR lpszClassName
либо
б) WNDCLASSEXA с полем LPCSTR lpszClassName
Облегчение задачи состоит в том, что, используя TEXT, Вам не придётся переписывать исходный код при смене режимов unicode|ascii.
При использовании функций api вообще никаких проблем не должно возникать.
Для своих же переменных следует использовать TCHAR и "производные" от него типы (LPTSTR например). А так же варианты функций для обработки строк, которые используют TCHAR