dll加载遇到的问题

Posted kgtone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dll加载遇到的问题相关的知识,希望对你有一定的参考价值。

dll加载有两种形式,分别是隐式加载和显式加载。

隐式加载在编译的时候就将dll文件编译到可执行文件中去,程序发布的时候可以不用讲dll带着.缺点是,这样编译出来后,程序会很大。

显式加载是指在程序运行过程中,需要用到dll里的函数时,再动态加载dll到内存中。这种加载方式因为是在程序运行后再加载的,所以可以让程序启动更快,而且dll的维护更容易,使得程序如果需要更新,很多时候直接更新dll,而不用重新安装程序.只是这种加载方式,函数调用稍微复杂一点。

我在项目中采用的是隐式加载,遇到的问题是"无法打开.lib文件"的错误,解决方法是检查dll文件和lib文件放的位置。

vs2017中放在vcxproj、vcxproj.user、vcxproj.filter三个文件所在的文件夹里面,与这三个文件放在一起后编译错误被消掉。

另外使用xerces解析xml的时候,报错的时候注意检查“XERCES_CPP_NAMESPACE_USE”是否添加。

 

 

参考:https://blog.csdn.net/enjoy5512/article/details/51548795

以上是关于dll加载遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

遇到“未能从程序集XXXX...加载类型XXX”的问题

调试实战 —— dll 加载失败之全局变量初始化篇

调试实战 —— dll 加载失败之全局变量初始化篇

模块“srmlib.dll”已加载,但未找到入口点 DllRegisterServer

SuperMap iObjects .NET加载dll动态库失败,控件不能用问题解析

开机出现加载硬件抽象层(HAL)所需的DLL 文件怎么修复???