高手请进,关于单步执行问题!

lvchengwei 2004-05-08 08:37:05
我编写了一个MFC程序。
我想实现这样的一个功能:当函数做到某一步时停下来,等待用户单击某个按钮后,再回到原来的地方继续执行!

我的函数涉及到第归调用,没有办法用代码来保存断点,不能拆分。(反正我是做不到将这个函数砍开几段执行)

有没有相关的API函数可以调用?如果没有,有没有其他方法实现这个功能
...全文
70 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvchengwei 2004-05-08
  • 打赏
  • 举报
回复
怎么我没有想到用年信号量呢!
谢谢!
vcforever 2004-05-08
  • 打赏
  • 举报
回复
你可以把这个函数设计成一个线程函数,当你需要停止该函数的时候调用SuspendThread函数来挂起该线程,在你所描述的按钮函数中调用ResumeThread函数来使挂起的线程继续执行
DWORD ResumeThread(
HANDLE hThread // handle to thread
);
DWORD SuspendThread(
HANDLE hThread // handle to thread
);

另一种方法是定义一个全局的Event对象,在你的函数中需要停止的地方使用WaitForSingleObject(hEvent,INFINITE)来等待该Event对象,这时该函数就停止在WaitForSingleObject函数处,然后在你的按钮函数中调用SetEvent(hEvent)函数将Event对象设置成激发状态,这样WaitForSingleObject函数就会返回,函数从WaitForSingleObject函数处继续往下执行


思路就是这样,希望对你有所帮助!
UDX协议 2004-05-08
  • 打赏
  • 举报
回复
所你的工作定义成,n个步骤。然后定义n个事件。
然后就用waitforsingleobject函授等第n个事件。

等待用户单击某个按钮后n+1,按扭里面,把事件设成有信号的。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧