PWideChar и TPicture.LoadFromFile

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

PWideChar и TPicture.LoadFromFile

Сообщение arra » 26.05.2013 13:53:27

Доброго времени суток.
Что мне нужно: мониторить папку на предмет добавления новой картинки, если она есть - распечатать. Мониторинг сделал через 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?
arra
новенький
 
Сообщения: 27
Зарегистрирован: 30.03.2013 22:58:27

Re: PWideChar и TPicture.LoadFromFile

Сообщение dunin » 27.05.2013 13:26:36

Код: Выделить всё
SysToUTF8
UTF8ToSys
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

Рейтинг@Mail.ru