Вы видите ошибку: "cannot convert parameter ... from 'char [...]' to 'LPCWSTR"?
Или может "cannot convert parameter ... from 'wchar_t [...]' to 'LPCSTR"?
Может вообще что-то вроде такого: "cannot convert parameter ... from 'char [...]' to 'LPCTSTR"?
Тогда первым делом подумайте о том, что вы неправильно работаете со строками, не visual studio, а только вы сами.
Если вы с этим согласны, то прекращайте на ровном месте конвертировать char в wchar_t, LPCWSTR, LPCTSTR и обратно.
LPCWSTR и LPCSTR - это просто макросы, которые в зависимости от настроек проекта подставляют вместо себя const char* или const wchar_t*. Точно так же соответствующие сущности подставляют вместо себя макросы большинства типов данных и функций WinAPI, например: CreateWindow или WNDCLASSEX.
Из этого следует только то, что для работы с этими типами и функциями WinAPI необходимо использовать только те типы, с которыми они могут взаимодействовать.
Единственный строковый тип данных, который однозначно допустим в WinAPI - это TCHAR и несколько его модификаций: LPCTSTR, LPTSTR.
Существует совсем немного исключений из этого правила, поэтому, когда вам нужно создать и/или передать строковый буфер, объявляйте его правильно и проблем со строками в WinAPI у вас никогда не будет:
TCHAR Buffer1[100]; TCHAR Buffer2[] = TEXT("My buffer");а чтобы это правило было сложно забыть, нужно просто обратить внимание на эту буковку T в названии всех этих "подставных" типов.
Комментариев нет:
Отправить комментарий