Arc*_*hon 13 c++ static visual-studio-2008 stack-pointer
我在vs2008中编译一个c ++静态库,在解决方案中我也有一个使用lib的启动项目,并且工作正常.
但是当在另一个解决方案中使用lib时,我得到运行时检查失败."ESP的值没有在功能调用中正确保存"通过代码我注意到函数foo()在崩溃之前跳转到bar().有问题的函数只是常规函数而没有函数指针.
任何人都知道可能会发生什么,以及为什么它在使用同一解决方案中的lib时有效?
编辑:函数(方法)是类的一部分,如果有帮助的话.
Mr.*_*Ree 15
请原谅我在这里说出明显的流血,但是......在对象(.o)和标题(.h)文件不同步之前,我已经看过很多次这种事情.特别是关于虚拟方法.
考虑:目标文件使用标头编译:
class Foo { virtual void f(); };
Run Code Online (Sandbox Code Playgroud)
但随后标题变为:
class Foo { virtual void g(); virtual void f(); };
Run Code Online (Sandbox Code Playgroud)
对于下一个目标文件,编译器关于f()在类的vtable中的位置的假设是不正确的.
通常只需重新编译世界(一切!)将有所帮助.
| 归档时间: |
|
| 查看次数: |
5743 次 |
| 最近记录: |