PictureView 3 — просмотр изображений различных форматов

Здесь можно обсудить ваш любимый плагин.
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

В этой теме обсуждается плагин PictureView 3.
Старый тред с обсуждением предыдущих версий: PictureView 1 и 2.

Дальнейшее развитие версии 1.5, переделано под API Far 3.0.



Об извлечении плагинов из дистрибутивов ACDSee.


PS: API как было убогим в Far 2, так и осталось...
Attachments
PictureView3_20140813_last_xp.7z
Последняя версия, работающая на WinXP
(321.22 KiB) Downloaded 1187 times
586
Posts: 10
Joined: Wed 02 Sep, 2009 23:52
Been thanked: 1 time

PictureView 3 — просмотр изображений различных форматов

Post by 586 »

Latest post of the previous page:

Подскажите, плиз, можно ли как-нибудь победить эту ошибку:

Error loading plugin
C:\Program Files\Far\Plugins\PictureView3\0PictureView.dll
Отказано в доступе.

FAR 3.x, плагин скачан из шапки
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

С такой информацией вряд ли кто поможет.

Какая версия Far'а? Система XP 32-bit? Что происходит в чистом Far'е, если это единственный плагин?
Last edited by SEt on Sat 10 Nov, 2018 19:12, edited 1 time in total.
586
Posts: 10
Joined: Wed 02 Sep, 2009 23:52
Been thanked: 1 time

PictureView 3 — просмотр изображений различных форматов

Post by 586 »

Да, Win XP/32бит. Ошибка выскакивает в любой версии FAR от 1.7x, до последней доступной 3.х. Когда плагин единственный при запуске фара выскакивает та же самая ошибка.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

PictureView 3 — просмотр изображений различных форматов

Post by Smitis »

586 wrote: Sat 10 Nov, 2018 10:12 Отказано в доступе.
Интересно, почему "отказано в доступе"? В плагине присутствует вызов GetGestureInfo из user32, который отсутствует в XP/2003. У меня под Win2003 так. Под единственной оставшейся XP тоже ошибка, но там я сейчас посмотреть не могу из-за чего. Скорее всего, тоже самое.
Разум когда-нибудь победит.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

PictureView 3 — просмотр изображений различных форматов

Post by 2useven10 »

Smitis wrote: Mon 12 Nov, 2018 15:48 В плагине присутствует вызов GetGestureInfo из user32, который отсутствует в XP/2003.
В 'последней версии, работающей под XP' нет.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

PictureView 3 — просмотр изображений различных форматов

Post by Smitis »

2useven10 wrote: Mon 12 Nov, 2018 16:23 В 'последней версии, работающей под XP' нет.
Это в версии, которая официально задекларирована под XP (2014.08.13). В реальности, вплоть до предыдущей версии 2017.10.18 работало и под XP и под 2003, хотя они официально вроде как и не поддерживались. Хотя 586 не написал версию, но брал "из шапки", у него скорее всего версия от 2014. Каюсь, не посмотрел, что в шапке только эта версия, поэтому моё замечание к нему, скорее всего, не относится. :wacko:
Last edited by Smitis on Mon 12 Nov, 2018 17:56, edited 2 times in total.
Разум когда-нибудь победит.
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

Могу порекомендовать запустить Process Monitor и отфильтровать по статусу Access Denied.
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

Ещё мысль: антивирус. Если он есть – попробуйте его удалить (не просто 'выключить', а именно удалить).
586
Posts: 10
Joined: Wed 02 Sep, 2009 23:52
Been thanked: 1 time

PictureView 3 — просмотр изображений различных форматов

Post by 586 »

Посмотрел Process Monitor'ом - ошибка возникает при обращении к direct draw:

Image


UPD Всё, спасибо, разобрался. Слетели атрибуты безопасности к файлу ddraw.dll, из-за этого и возникала ошибка.
Last edited by 586 on Wed 14 Nov, 2018 15:05, edited 1 time in total.
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

PictureView 3 — просмотр изображений различных форматов

Post by DV »

Какой-то эпичный глюк нашёл... Воспроизводится с PictureView3_20140813_last_xp под Far30b5005.x86, Far30b5226.x86 и Far30b5317.x86.
Есть у меня папка %USERPROFILE%\Downloads, и в ней - штук 300 разных файлов, в их числе файл "scan1.jpg".
Если нажать на нём F3 (просмотр картинки в PictureView) и нажать "+" (увеличение масштаба), то при обычной сортировке по имени файлов всё в порядке.
А теперь, почему я вспомнил про сортировку. Если в файловой панели нажать Ctrl+F5 (сортировка по дате/времени) и теперь на том же файле "scan1.jpg" нажать F3 и "+", то FAR или подвисает или вылетает.
Воспроизводится с чистым FAR, с созданным с нуля профилем (настройками) у которого в папке Plugins только PictureView.
Однако, если этот же самый файл "scan1.jpg" скопировать из папки %USERPROFILE%\Downloads в другую папку, и проделать описанные выше действия там, то FAR не подвисает и не вылетает. Какая-то мистика. Как исследовать?

Возможно, в исследованиях мог бы помочь FExcept - но я не представляю, как его активировать в FAR3...
Last edited by DV on Fri 16 Nov, 2018 21:57, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

DV wrote: Fri 16 Nov, 2018 21:47Как исследовать?
Первым делом скачайте PDB ровно для своей сборки Фара (в т.ч. той же битности). Файл Far.pdb положите рядом с Far.exe, запустите Фар без прочих плагинов и воспроизведите ошибку. Если подвиснет, то создайте мини-/дамп процесса (например, с помощью Task Manager'а — в контекстном меню процесса на вкладке Details пункт Create Dump). Если всё время вылетает, притом без красного окошка в Фаре, где тоже можно создать дамп, то надо действовать, как говорит Майкрософт. А если вылетает с красным окошком, то для начала откройте так call stack и скопируйте его сюда как текст.
DV wrote: Fri 16 Nov, 2018 21:47 Возможно, в исследованиях мог бы помочь FExcept - но я не представляю, как его активировать в FAR3...
Надо папку FExcept положить в папку Фара — до всего, что написано выше.

P.S. Кстати, а если в той же папке Downloads сделать копии этого файла, одна из которых чуть-чуть (на долю секунды) новее, а другая чуть-чуть старше (можно выставить через свойства файла), то падение/зависание воспроизводится?
Фар есть инструмент, а не нянька. © 2009 DrKnS
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

PictureView 3 — просмотр изображений различных форматов

Post by DV »

Удалось получить call stack в Visual Studio:


Выходит, в opengl32.dll падает?
Last edited by DV on Fri 16 Nov, 2018 22:24, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

DV wrote: Fri 16 Nov, 2018 22:14 в opengl32.dll падает?
Похоже на то, но причины могут быть разнообразные.

Попробуйте то, что я написал в P.S..
Ну и посмотрите, наисвежайшие ли у вас драйверы видяшки, — от них очень многое зависит.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

PictureView 3 — просмотр изображений различных форматов

Post by DrKnS »

DV wrote: Fri 16 Nov, 2018 21:47 Воспроизводится с чистым FAR, с созданным с нуля профилем (настройками) у которого в папке Plugins только PictureView.
DV wrote: Fri 16 Nov, 2018 22:14
ConEmuHk.dll!7e12eddb() Unknown
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

PictureView 3 — просмотр изображений различных форматов

Post by DrKnS »

Вообще стек дивный:

Code: Select all

 	0. 0PictureView.dll!0fe48572()
 	1. [External Code]	
 	2. Far.exe!compare_natural_base           Line 257
 	3. Far.exe!compare_natural_numeric_icase  Line 286
 	4. 0PictureView.dll!0fe49058()
 	5. Far.exe!Plugin::ExecuteFunctionSeh     Line 364
Я представляю, как могло получиться 5-4-3: фар вызвал плагин, плагин захотел что-то посортировать, используя LStrnicmp API.
Но 2-1-0 - это дичь: compare_natural_base Line 257 - это вызов WinAPI CompareStringW.
Без мутных хуков, видимо, не обошлось.
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

Падает внутри opengl32.dll на вызове TexSubImage2D. То, что на отдельном файле не наблюдается легко объяснить: в PV же опережающее декодирование – оно сразу переходит декодировать соседние, и проблемы, скорее всего, именно на соседних.

DrKnS, что дивного то? "[External Code]" явно говорит о том, что дальше стек VS просто придумала, и он не имеет ничего общего с реальностью.
Post Reply

Return to “Обсуждение плагинов”