Требуется ли команде ImageMagick resize (mogrify) какие-либо библиотеки DLL?

Я загрузил версию ImageMagick без установки ( http://www.imagemagick.org/download/binaries/ImageMagick-6.8.6-8-Q16-x86-windows.zip) для использования в проекте, но она довольно велика и составляет 123 МБ.

Мне нужно только mogrify.exe сделать простое изменение размера изображения. Я скопировал его в отдельный каталог, и он работает нормально, но я не уверен, что у меня уже есть некоторые необходимые библиотеки DLL (возможно, у пользователя их нет).

Я запустил Process Explorer на mogrify, но он сказал, что не было никаких DLL, используемых в образе.

Это правильно или мне тоже нужно включить что-нибудь из этого?

atl100.dll mfc100.dll msvcp100.dll msvcr100.dll vcomp100.dll X11.dll Xext.dll

(полный список из zip-файла)

я верю vcomp100.dll является частью распространяемого Visual C++, так что, я думаю, мне следует включить его, если он не установлен на компьютере пользователя?

С другой стороны, X11.dll выглядит ненужным.

Есть ли более простой способ выяснить это, кроме исследования каждой отдельной DLL?

2 ответа

Решение

vcomp100.dll библиотека является единственной зависимостью для изменения размера в mogrify.exe, В целях безопасности вам следует перераспределить эту DLL в том же каталоге, что и исполняемый файл.

Есть ли более простой способ выяснить это, кроме исследования каждой отдельной DLL?

Я не могу ответить, каким будет самый простой способ (кроме чтения документации по каждой библиотеке), но я настоятельно рекомендую создать модульный тест, чтобы убедиться, что все ожидаемые функциональные возможности ваших требований соответствуют. Я смог запустить набор тестов на стандартной установке XP (через VirtualBox) и подтвердил, что изменение размера PNG, JPEG и базового рисования работает без дополнительных зависимостей.

Для обнаружения исполняемых файлов и dll-зависимостей в Windows вы можете использовать DependencyWalker (бесплатный инструмент). ProcessExplorer только сообщает вам, какие DLL загружены процессом в конкретный момент, когда вы проверяете его. DLL может быть загружена по требованию или не загружаться вообще, в зависимости от потребностей исполняемого файла, поэтому DependencyWalker может помочь вам в большем количестве случаев.

Другие вопросы по тегам