关于堆栈清理和独立的进程

我需要用一个函数在一个OBJ文件,我没有源代码。 该功能运作良好,它的工作,但它破坏了堆栈(ESP运行时没有正确保存..错误在Visual Studio C ++ 2010),我不知道装配不够好,发现问题,并修补它。 (。据我读它有没有持久性有机污染物的数量相等,并推动的事情。)我试图执行一个单独的线程功能,但因为它共享相同的存储作为我的主要程序,它也崩溃。 该功能的工作原理和做它需要做的一切,希望它能破坏了堆栈,使应用程序崩溃。 有什么办法,我可以从我的主应用程序隔离开来? 香港专业教育学院读到的CreateProcess但是从我的理解是执行,我不想做一个单独的.EXE文件。 我想执行一个功能,如果它是一个外部程序,所以它不会崩溃,即使它破坏了堆栈我的主程序。 反正做在C / C ++这样的事情? 或者,也许有人有另外一种想法解决的事情吗? 此外,如果因为即时通讯的“脏”或不符合标准的编写这个程序供个人使用我不在乎。 由于函数做什么它需要做林真的试图保持它,即使它破坏了调用堆栈。

非常感谢你

--------------解决方案-------------

闻起来很像一个调用约定不匹配。 它是随时随地记录的功能是如何被叫什么名字? 你有没有包含函数原型为函数的头文件? 尝试用不同的调用调用它约定,如果你叫它为cdecl ,尝试调用它作为stdcall ,反之亦然。

还看到当你不匹配的调用约定哪里会出错?

分类:C# 时间:2015-03-15 人气:0
本文关键词: 过程中,堆
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.056 (s). 10 q(s)