Страница 1 из 1

PWideChar и TPicture.LoadFromFile

СообщениеДобавлено: 26.05.2013 13:53:27
arra
Доброго времени суток.
Что мне нужно: мониторить папку на предмет добавления новой картинки, если она есть - распечатать. Мониторинг сделал через ReadDirectoryChangesW (нарыл пример в инете). Но там имя файла вытаскивается в PWideChar:

Код: Выделить всё
Ptr:=lpBuf;
  MyStruct:=PFileNotifyInformation(Ptr)^;
  //repeat
   // Выделяем память под имя файла
   GetMem(FileName,MyStruct.FileNameLength+2);
   // Очищаем память - чтобы последним символом после копирования
   // был бы #0 нуль
   ZeroMemory(FileName,MyStruct.FileNameLength+2);
   // WinAPI функция для копирования Unicode строки
   lstrcpynW(FileName,MyStruct.FileName,
             MyStruct.FileNameLength div 2+1);


После чего я отдаю FileName в LoadFormFile, чтобы загрузить в TPicture добавленную картинку и потом её вывести на canvas принтера:

Код: Выделить всё
MyImg.LoadFromFile(katalog+FileName);


katalog - константа равная 'C:\sav_file\'
Если в имени русских букв нет, то всё отлично. А вот если есть, то LoadFromFile не отрабатывает. Возникает вопрос - как корректно отдать ей имя в юникодовской кодировке? При том, что параметр у LoadFromFile - типа string?

Re: PWideChar и TPicture.LoadFromFile

СообщениеДобавлено: 27.05.2013 13:26:36
dunin
Код: Выделить всё
SysToUTF8
UTF8ToSys