+ -
当前位置:首页 → 问答吧 → MFC程序,重复使用函数中断

MFC程序,重复使用函数中断

时间:2011-12-05

来源:互联网

定义了一个calculation类,里面有一个void GetTrainInfo()函数是用来计算的,每次计算给下面的五个CStringArray赋值。
我在View中添加一个OnStart开始按钮,定义一个m_cal对象点击开始后执行m_cal.GetTrainInfo()计算。
现在的问题是:如果我调用一次m_cal.GetTrainInfo()能正确计算并正确赋值;但是如果在OnStart中添加一个循环(改时间参数)就只能执行一次,函数第二次开始就没有执行。
[code=C/C++]
[/
class Calculation
{
public:
Calculation(void);
~Calculation(void);
private:
long int m_Simutime; //当前仿真时间
long int m_StartTime; //仿真开始时间
long int m_EndTime; //仿真结束时间
//******************************************************//
CStringArray m_TrainId;
CStringArray m_TrainPosition;
CStringArray m_TrainPower;
CStringArray m_TrainSectionFlag;
CStringArray m_TrainLineFlag;
//*******************************************************//


public:
void GetStartTime(long int simutime);
void GetEndTime(long int simutime);
void SetSimuTime(long int simutime);
void GetTrainInfo();
};
]
单步调试后发现函数第二次执行后跳到:cmdtarg.cpp中,指向最后一行。请问怎么回事?????
[code=C/C++][/
code
switch (nSig)
{
default: // illegal
ASSERT(FALSE);
return 0;
break;

case AfxSigCmd_v:
// normal command or control notification
ASSERT(CN_COMMAND == 0); // CN_COMMAND same as BN_CLICKED
ASSERT(pExtra == NULL);
(pTarget->*mmf.pfnCmd_v_v)();
break;
]

作者: wyb201   发布时间: 2011-12-05

但是如果在OnStart中添加一个循环(改时间参数)就只能执行一次,函数第二次开始就没有执行。


------------------------

很明显应该是第二次执行GetTrainInfo异常导致的,循环一次后遇到异常退出了。
应该是GetTrainInfo中出现异常,在GetTrainInfo函数中处理异常看看什么情况。

作者: juventus_c   发布时间: 2011-12-05

引用 1 楼 juventus_c 的回复:

但是如果在OnStart中添加一个循环(改时间参数)就只能执行一次,函数第二次开始就没有执行。


------------------------

很明显应该是第二次执行GetTrainInfo异常导致的,循环一次后遇到异常退出了。
应该是GetTrainInfo中出现异常,在GetTrainInfo函数中处理异常看看什么情况。


请问异常该怎么调试?

作者: wyb201   发布时间: 2011-12-05

第二次执行就跟本不进入到函数中,直接中断退出了,实在不明白,该怎么办啊? 异常调试么?

作者: wyb201   发布时间: 2011-12-05

热门下载

更多