Windows上解决无法定位程序输入点“*”于“*.dll”上的思路方法

dll是Windows世界的支柱,在开发一个Windows应用程序时,为了模块化降低耦合,需要将一些独立的功能独立成dll,而这些dll又可能引用了第三方的dll

程序构建成功后,运行,结果出现了运行时的错误:

无法定位程序输入点*于动态链接库*.dll上。

Windows上解决无法定位程序输入点“*”于“*.dll”上的思路方法

遇到此类问题,一般无从下手。

一般性思路:

打开depends.exe,在其中打开出错的dll

在左侧查看错误的依赖dll是哪个,一般忽略系统dll

点到出错的依赖dll上,我这里是libcrypto-1.1-X64.dll

看右侧的导入导出项目,仔细观察可以发现EVP_rc5_32_12_16_ofb果然存在问题

使用everything搜索,发现这个依赖dllopenssl中的东西,项目中已经更换了openssl的版本为1.1.1,于是需要将1.1.1版本的libcrypto-1.1-X64.dll拷贝至运行目录,至此解决!

总结:得益于depends.exe工具,在分析dll问题时首先应该想到它!

Windows上解决无法定位程序输入点“*”于“*.dll”上的思路方法

上一篇:SQLServer中char、varchar、nchar、nvarchar的区别:


下一篇:paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换