Показать сообщение отдельно
  #3  
Старый 12.03.2017, 23:24
tsa tsa вне форума
Прохожий
 
Регистрация: 12.03.2017
Сообщения: 3
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Возможно, библиотека блокирует файл, да так, что даже api функция не может с ним работать. Варианты:
1. Закрывать файл сразу после того, как считал данные, и убивать COM-объект, а только потом уже ставить время.
Это я проверил сразу, прощу прощения, что не упомянул об этом в старт-посте. После получения времени я закрыл файл и заново получил его Handle. Но результат работы от этого не изменился. А все объекты у меня убиваются сразу по мере возможности. Еще я менял параметры создания объектов и получения Handle файла, но результат все тот же. Исходя из последующего возникновения access violation в плеере моего MDI приложения предполагаю, что портится память. Вот только что решил попробовать "освежить" ее и после WicDecoder._Release; поставил
WicFactory.CreateDecoderFromFileHandle(hndl,TGUID( nil^),WICDecodeMetadataCacheOnDemand,WicDecoder);
WicDecoder._Release;
WicFactory._Release;

с надеждой, что испорченное место "перепашется" заново как надо, но получил access violation на операторе WicDecoder._Release; хотя декодер только создался предыдущим оператором и не мог быть запорчен.

Цитата:
Сообщение от lmikle
2. Найти другую библиотеку чтения EXIF. Видел где-то в исходниках такую. Там полностью Delphi-код, никаких сторонних объектов не используется.
Буду крайне благодарен, если Вам удастся вспомнить, что это была за библиотека.
Ответить с цитированием