dll是Windows世界的支柱,在开发一个Windows应用程序时,为了模块化降低耦合,需要将一些独立的功能独立成dll,而这些dll又可能引用了第三方的dll。
程序构建成功后,运行,结果出现了运行时的错误:
无法定位程序输入点*于动态链接库*.dll上。
遇到此类问题,一般无从下手。
一般性思路:
打开depends.exe,在其中打开出错的dll
在左侧查看错误的依赖dll是哪个,一般忽略系统dll
点到出错的依赖dll上,我这里是libcrypto-1.1-X64.dll
看右侧的导入导出项目,仔细观察可以发现EVP_rc5_32_12_16_ofb果然存在问题
使用everything搜索,发现这个依赖dll是openssl中的东西,项目中已经更换了openssl的版本为1.1.1,于是需要将1.1.1版本的libcrypto-1.1-X64.dll拷贝至运行目录,至此解决!
总结:得益于depends.exe工具,在分析dll问题时首先应该想到它!