Короче видимо ошибки связанные с кодировкой и типами данных wchar_t и char и непониманием как это работает. char - занимает один байт wchar_t - два байта как минимум.
В винапи практически все функции имеют две реализации: одна для символов типа char, вторая для символов типа wchar_t. Например CreateWindowExA - это для символов char, CreateWindowExW - для символов wchar_t. В тот момент, когда вы пишите CreateWindowEx() компилятор выбирает нужную функцию из CreateWindowExA или CreateWindowExW и подставляет ее при компиляции. То есть функции CreateWindowEx без приставки нет, есть либо для char либо для wchar_t. Как же компилятор выбирает какую функцию выбрать!? В visualstudio основная (стартовая) функция называется wWinMain, так вот приставка w в начале как раз и говорит что будет вызываться функции реализованные для wchar_t. Если же написать просто WinMain то, как я понимаю (могу немного ошибаться), будут вызываться те, которые реализованы для char. В компиляторе mingw(который кстати и использует dev-c++) для запуска функций реализованных для wchar_t нужно выставлять флаг компиляции
-municode
(для dev-c++ я не знаю как добавлять флаги компиляции, пользуюсь code::blocks IDE) без этого флага mingw по умолчанию вызывает функции реализованные для char.
А теперь по вашему поводу. LPCWSTR - это указатель на строку у которой символ занимает 2 байта (wchar_t), LPCSTR - указатель на строку у которой символ занимает 1 байт (char). Эти указатели по сути одно и то же, то есть занимают одно и то же количество байт, но вас компилятор предупреждает об ошибке что указывают они не на те строки что вы хотите. То есть первое что вам нужно решить это в каком режиме работает компилятор в wchar_t или в char(я предполагаю что в char). Потом все строки сделать теми, которые и использует функции
"Hello" - char
L"Hello" - wchar_t приставка L переводит символы в wchar_t на этапе компиляции (то есть ее нельзя использовать для конвертации символов на этапе выполнения)
А потом правильно вызывать функции в зависимости от строк. А простая попытка конвертации одного указателя (LPCSTR) в другой (LPCWSTR) как минимум невозможна так как текст все равно остался однобайтовым (char) о чем вас и предупреждает компилятор говоря что не могу конвертировать указатели...
Это крутейший редактор! Как он называется? Хочу себе такой
Зачем ты приводишь text к LPCWSTR? Ты понимаешь, что это, и зачем оно нужно?
#define UNICODE