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

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

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

Post by SEt » Sun 07 Apr, 2013 22:25

В этой теме обсуждается плагин 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 577 times

586
Posts: 6
Joined: Wed 02 Sep, 2009 23:52

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

Post by 586 » Sat 10 Nov, 2018 10:12

Latest post of the previous page:

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

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

FAR 3.x, плагин скачан из шапки

SEt
Posts: 435
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 17 times

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

Post by SEt » Sat 10 Nov, 2018 19:12

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

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

586
Posts: 6
Joined: Wed 02 Sep, 2009 23:52

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

Post by 586 » Mon 12 Nov, 2018 13:39

Да, Win XP/32бит. Ошибка выскакивает в любой версии FAR от 1.7x, до последней доступной 3.х. Когда плагин единственный при запуске фара выскакивает та же самая ошибка.

Smitis
Posts: 1554
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 15 times
Been thanked: 31 times
Contact:

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

Post by Smitis » Mon 12 Nov, 2018 15:48

586 wrote:
Sat 10 Nov, 2018 10:12
Отказано в доступе.
Интересно, почему "отказано в доступе"? В плагине присутствует вызов GetGestureInfo из user32, который отсутствует в XP/2003. У меня под Win2003 так. Под единственной оставшейся XP тоже ошибка, но там я сейчас посмотреть не могу из-за чего. Скорее всего, тоже самое.
Разум когда-нибудь победит.

2useven10
Posts: 3653
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 145 times

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

Post by 2useven10 » Mon 12 Nov, 2018 16:23

Smitis wrote:
Mon 12 Nov, 2018 15:48
В плагине присутствует вызов GetGestureInfo из user32, который отсутствует в XP/2003.
В 'последней версии, работающей под XP' нет.

Smitis
Posts: 1554
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 15 times
Been thanked: 31 times
Contact:

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

Post by Smitis » Mon 12 Nov, 2018 17:54

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: 435
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 17 times

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

Post by SEt » Tue 13 Nov, 2018 00:27

Могу порекомендовать запустить Process Monitor и отфильтровать по статусу Access Denied.

SEt
Posts: 435
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 17 times

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

Post by SEt » Tue 13 Nov, 2018 13:46

Ещё мысль: антивирус. Если он есть – попробуйте его удалить (не просто 'выключить', а именно удалить).

586
Posts: 6
Joined: Wed 02 Sep, 2009 23:52

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

Post by 586 » Wed 14 Nov, 2018 14:05

Посмотрел 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: 350
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 8 times
Been thanked: 2 times

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

Post by DV » Fri 16 Nov, 2018 21:47

Какой-то эпичный глюк нашёл... Воспроизводится с 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: 8532
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 75 times
Been thanked: 138 times

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

Post by HaRT » Fri 16 Nov, 2018 21:57

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: 350
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 8 times
Been thanked: 2 times

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

Post by DV » Fri 16 Nov, 2018 22:14

Удалось получить 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: 8532
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 75 times
Been thanked: 138 times

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

Post by HaRT » Fri 16 Nov, 2018 22:17

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

Попробуйте то, что я написал в P.S..
Ну и посмотрите, наисвежайшие ли у вас драйверы видяшки, — от них очень многое зависит.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5056
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 177 times

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

Post by DrKnS » Sat 17 Nov, 2018 00:11

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: 5056
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 177 times

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

Post by DrKnS » Sat 17 Nov, 2018 00:29

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

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: 435
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 17 times

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

Post by SEt » Sat 17 Nov, 2018 09:03

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

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

DV
Posts: 350
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 8 times
Been thanked: 2 times

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

Post by DV » Sat 17 Nov, 2018 17:23

Замечание насчёт соседней картинки - это в самую точку!
Нашёл картинку, которая в одиночку подвешивает PictureView3 в свежераспакованном FAR3 просто по нажатию F3: прикрепленная "Techn.sepcification_800_New Korea.jpg". Уж не знаю, что с ней не так. (Проблема воспроизводится, даже когда единственную эту картинку скопировать в свежую папку с FAR3 и нажать F3 там).
Кстати, после обновления драйверов NVidia проблема не исчезла:

Возможно, библиотека opengl32 не входит в драйвер NVidia - или просто давно не обновлялась?
Attachments
Techn.sepcification_800_New Korea.jpg
Last edited by DV on Sat 17 Nov, 2018 17:24, edited 2 times in total.

Post Reply

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