我下载了ImageMagick的无安装版本(ImageMagick6.8.6-8-Q16-x86-windows.zip)用于项目,但它的大小相当大,为123MB。
我只需要mogrify.exe
来做一个简单的图像大小调整。我把它复制到一个单独的目录中,它运行得很好,但我不确定我是否已经有了一些所需的DLL(用户可能没有)。
我在mogrify
上运行了Process Explorer,但它说映像没有使用DLL。
这是正确的吗?还是我也需要包括其中的任何一个?
atl100.dll mfc100.dll msvcp100.dll msvcr100.dll vcomp100.dll X11.dll Xext.dll
(zip文件中的完整列表)
我相信vcomp100.dll
是Visual C++可再发行程序的一部分,所以我想我应该包括它,以防它没有安装在用户的机器上?
另一方面,X11.dll
看起来没有必要。
除了研究每个单独的DLL之外,还有什么更简单的方法可以解决这个问题吗?
vcomp100.dll
库是在mogrify.exe
中调整大小的唯一依赖项。为了安全起见,您应该将该DLL重新分发到与可执行文件相同的目录中。
除了研究每个单独的DLL之外,还有什么更简单的方法可以解决这个问题吗?
我无法回答最简单的方法是什么(除了阅读每个库的文档),但我强烈建议编写一个单元测试以确保满足您需求的所有预期功能。我能够在XP的普通安装上运行一个测试套件(通过VirtualBox),并确认调整PNG、JPEG和基本绘图的大小不需要额外的依赖性。
要在Windows上发现可执行文件和dll依赖项,可以使用DependencyWalker(免费工具)。ProcessExplorer仅在检查某个进程的特定时刻告诉该进程加载了哪些DLL。根据可执行文件的需要,DLL可能是按需加载的,也可能根本不加载,因此DependencyWalker可以在更多情况下为您提供帮助。