问题背景:
前段时间项目中要用到一个压缩文件的功能,像这种工具类的功能第一反应就是在网上找第三方库,顺利找到第三方库后。按照常规套路,设置附加包文件目录、附加库目录、附加依赖性。配置好顺利编译成功,程序正常启动运行最后调用压缩接口运行没报错,但是返回false没有压缩成功,查了半天才明白原因。
解决方案:
像这种多个不同项目之间依赖引用,编译运行都正常但就是得不到正确结果的额问题,大部分还是依赖库缺少导致。上述问题简单示意下,如主程序A,第三方接口库B。A引用B后得不到预期结果,原始就是B中真正实现压缩功能的在C库中,B只是做了一个适配的中间库,所以在程序中要放C的库文件,即可得到预期结果。
分析方式,可以采用depends第三方工具,用depends启动要分析的exe,运行你所要测试的功能,depends可以很详细的显示当前所有调用dll的模块,如果有缺少dll没有加载depends会提示。如下图: