追查dll在server2003中,无法加载的问题

来源:互联网 发布:Mac可以装精简版w10 编辑:程序博客网 时间:2024/05/18 13:24

release的程序发布在win7,xp等操作系统上(32 or 64)均可以正常运行,唯独发现在server2003 64位的机器上无法启动,直接报av00000000的错误。

因为没法在这个环境上直接调试,通过日志定位到的是调用dll的导出函数是出现的问题。

后来一想av0000000是空指针访问的异常类型,难道是dll没加载上?

于是在正常机器上把加载dll的路径改成一个错误的文件路径,果然出现了同样的问题。

怀疑是在那个系统上文件路径上有问题(比如有乱码等情况),dll本身是在exe同目录中。

可是日志记录发现文件路径也都在正常,唯独LoadLibrary的返回值是0。

肯定是dll本身缺少依赖引起的问题,果断拿出大杀器dependencywalker,查了一下那个系统上我们的dll的依赖关系

果然少了几个


(这几个其实是多余的,修正dll的依赖即可)

0 0