原因及分析:
此时由于.library和.dll文件版本不匹配造成的。比如.lib里有20个函数,.dll只有19个函数,当windows加载动态链接库的时候,它检查是否匹配,否则报错。
在项目需要运行多个不同版本的dll文件时候,容易出现此问题。此时隐式调用Dll。
解决办法:
采用显示调用,手工加载的办法。
1)声明函数指针原型。
2)LoadLibrary()
3)GetProcAddress()
4)比较重要,在调用此函数指针的时候,判断是否NULL。因为在dll文件里没有实现的函数指针是NULL。
本文详细解析了dll文件版本不匹配引起的问题,并提供了采用显示调用和手工加载的方法来解决该问题的步骤。通过声明函数指针原型、使用LoadLibrary()函数加载dll文件以及通过GetProcAddress()获取函数地址,可以避免dll文件版本不匹配带来的运行错误。
5442

被折叠的 条评论
为什么被折叠?



