Page 42 of 49

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

Posted: Sun 07 Apr, 2013 22:25
by SEt
В этой теме обсуждается плагин PictureView 3.
Старый тред с обсуждением предыдущих версий: PictureView 1 и 2.

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



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


PS: API как было убогим в Far 2, так и осталось...

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

Posted: Sat 10 Nov, 2018 10:12
by 586

Latest post of the previous page:

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

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

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

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

Posted: Sat 10 Nov, 2018 19:12
by SEt
С такой информацией вряд ли кто поможет.

Какая версия Far'а? Система XP 32-bit? Что происходит в чистом Far'е, если это единственный плагин?

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

Posted: Mon 12 Nov, 2018 13:39
by 586
Да, Win XP/32бит. Ошибка выскакивает в любой версии FAR от 1.7x, до последней доступной 3.х. Когда плагин единственный при запуске фара выскакивает та же самая ошибка.

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

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

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

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

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

Posted: Mon 12 Nov, 2018 17:54
by Smitis
2useven10 wrote:
Mon 12 Nov, 2018 16:23
В 'последней версии, работающей под XP' нет.
Это в версии, которая официально задекларирована под XP (2014.08.13). В реальности, вплоть до предыдущей версии 2017.10.18 работало и под XP и под 2003, хотя они официально вроде как и не поддерживались. Хотя 586 не написал версию, но брал "из шапки", у него скорее всего версия от 2014. Каюсь, не посмотрел, что в шапке только эта версия, поэтому моё замечание к нему, скорее всего, не относится. :wacko:

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

Posted: Tue 13 Nov, 2018 00:27
by SEt
Могу порекомендовать запустить Process Monitor и отфильтровать по статусу Access Denied.

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

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

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

Posted: Wed 14 Nov, 2018 14:05
by 586
Посмотрел Process Monitor'ом - ошибка возникает при обращении к direct draw:

Image


UPD Всё, спасибо, разобрался. Слетели атрибуты безопасности к файлу ddraw.dll, из-за этого и возникала ошибка.

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

Posted: Fri 16 Nov, 2018 21:47
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...

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

Posted: Fri 16 Nov, 2018 21:57
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 сделать копии этого файла, одна из которых чуть-чуть (на долю секунды) новее, а другая чуть-чуть старше (можно выставить через свойства файла), то падение/зависание воспроизводится?

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

Posted: Fri 16 Nov, 2018 22:14
by DV
Удалось получить call stack в Visual Studio:


Выходит, в opengl32.dll падает?

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

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

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

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

Posted: Sat 17 Nov, 2018 00:11
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

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

Posted: Sat 17 Nov, 2018 00:29
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.
Без мутных хуков, видимо, не обошлось.

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

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

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

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

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

Возможно, библиотека opengl32 не входит в драйвер NVidia - или просто давно не обновлялась?