тип LPCWSTR
- это постоянный указатель на широкий символ
file
в char* file="d:/tester";
- указатель на обычный символ
Обычный символ обычно использует 1 байт памятив то время как широкий символ обычно использует 2 байта.Что произойдет, если имя файла содержит буквы кириллицы или японские буквы?Вы не сможете открыть его без указания кодировки.Windows API принимает широкие символы для функции FindFirstFile
, потому что имя файла может быть в Unicode.Таким образом, если вы напишите L"foo_bar"
, компилятор интерпретирует его как строку широких символов.Поэтому вы можете написать wchar_t* file = L"d:\\tester";
для соответствия типам параметров, чтобы компиляция прошла успешно.