相关疑难解决方法(0)

函数调用跳转到错误的函数

我在vs2008中编译一个c ++静态库,在解决方案中我也有一个使用lib的启动项目,并且工作正常.

但是当在另一个解决方案中使用lib时,我得到运行时检查失败."ESP的值没有在功能调用中正确保存"通过代码我注意到函数foo()在崩溃之前跳转到bar().有问题的函数只是常规函数而没有函数指针.

任何人都知道可能会发生什么,以及为什么它在使用同一解决方案中的lib时有效?

编辑:函数(方法)是类的一部分,如果有帮助的话.

c++ static visual-studio-2008 stack-pointer

13
推荐指数
2
解决办法
5743
查看次数

跨越VS项目的STL矢量腐败

我有一个Visual Studio 2005解决方案,其中包含几个彼此独立构建的项目.主项目静态链接其他项目.我在其中一个静态链接库中得到了非常奇怪的STL向量损坏.例如,我声明一个std :: vector然后执行一个sort( thatVector.begin(), thatVector.end() ),但是当我调试它并查看反汇编时,我看到:

std::vector<SomeOtherClass<SomeOtherTemplateType>,std::allocator<SomeOtherClass<SomeOtherTemplateType> > >::begin
Run Code Online (Sandbox Code Playgroud)

令人难以置信的奇怪的是,SomeOtherClass并且SomeOtherTemplate在主项目中声明,所以这个库应该完全不知道它们.

我试过冻结所有其他线程,认为其中一个可能是腐败thatVector,但没有骰子.我完全失去了.有没有人经历过这样的事情?

编译信息: - 主程序/ Zi,自定义优化(基本上是可调试的发布版本) - 静态库/ Zi,/ Od

链接信息:/ DEBUG

c++ stl vector visual-studio

4
推荐指数
1
解决办法
311
查看次数