首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VC2008的程序调用VC2005生成的dll库有关问题

2012-03-31 
VC2008的程序调用VC2005生成的dll库问题各位 小弟遇到 不同版本VS 调用dll库问题如题,程序运行时 报“应用

VC2008的程序调用VC2005生成的dll库问题
各位 小弟遇到 不同版本VS 调用dll库问题

如题,程序运行时 报“应用程序正常初始化(0x0150002)失败。..”

由于某些底层库是VS2005编译好的,所以比较纠结!

请各位忙个帮( 比较着急)!

[解决办法]
帮顶,关注...
[解决办法]
看下调用堆栈 是哪个.dll出问题的
[解决办法]
先确定下 VS 2005的依赖库是否都在对应的目录下
比如你的 VS2005.dll是用2005编译的,但该库又依赖msvcr8.dll (当然可能是别的dll)则有可能出现这个问题

[解决办法]
貌似遇到dll地狱了,运行库版本不一致可能会遇到这个问题。

这个看运气了,有时候可以成功。

另外,楼主如果混用运行库,尽量不要选静态链接,就用动态运行库,msvcr80和msvcr90全都带上
[解决办法]

探讨

貌似遇到dll地狱了,运行库版本不一致可能会遇到这个问题。

这个看运气了,有时候可以成功。

另外,楼主如果混用运行库,尽量不要选静态链接,就用动态运行库,msvcr80和msvcr90全都带上

[解决办法]
有一个技巧,应该能解决楼主的问题。

dll是VS2005的,exe是你自己写的吧,你在exe的工程里,禁用VS2008的运行库,链接VS2005的,肯定可以
[解决办法]
有一种东西叫“强文件名”

也是微软为了避开这种问题专门做的一个清单,楼主可以看一下
http://blog.csdn.net/armsnow/article/details/6188401
[解决办法]
你启动的时候 在调试窗口看下加载的dll顺序
首先 定位是加载哪个dll时异常了
其次 你看下调用堆栈 是dll 冲突还是缺少别的依赖库什么的
你找个工具 叫DEPENDS.EXE 看是否所有的库都导入了
[解决办法]
楼主,你的问题我以前遇到过,被解决了;主要问题是你的exe的编译版本和所调用的dll版本交叉开了,例如:你的exe是Debug版本的,而你调用的dll是Release版本的,这样就会出现初始化失败的问题,试一下把所有的都用Debug版本或者Release版本,对应好了应该可以解决这个问题的,解决问题了给分哦。。。。。。
[解决办法]
学习了!!!!

热点排行