当前位置:  开发笔记 > 开发工具 > 正文

VS 2005和2008库链接

如何解决《VS2005和2008库链接》经验,为你挑选了1个好方法。

将使用VS 2005编译的静态库(.lib)与使用VS 2008编译的程序链接是否正确?库和我的程序都是用C++编写的.此程序在Windows Mobile 6 Professional模拟器上运行.

这似乎工作,没有链接错误.但是程序在启动期间崩溃,因为链接库中发生了奇怪的事情.例如,lib可以返回大负数的字符向量.

使用VS 2005编译程序时没有这样的问题.

更奇怪的是,问题仅在于为构建使用发布配置时.使用调试配置进行编译时,不会发生此问题.



1> Timbo..:

VS2005和VS2008使用不同的STL实现.当VS2005代码返回向量时,该对象的内存布局与VS2008预期的不同.这应该是您在返回日期中看到的值损坏的原因.

根据经验,您应该始终使用相同的编译器编译项目的所有C++模块,并且所有设置/ #define equal.

导致类似行为的一个特定#define是VS2008的SECURE_SCL #define.使用不同设置编译的两个模块将准确创建您的问题,因为#defining SECURE_SCL将更多成员变量引入各种C++库类.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有