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;
]
我在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函数中处理异常看看什么情况。
------------------------
很明显应该是第二次执行GetTrainInfo异常导致的,循环一次后遇到异常退出了。
应该是GetTrainInfo中出现异常,在GetTrainInfo函数中处理异常看看什么情况。
作者: juventus_c 发布时间: 2011-12-05
引用 1 楼 juventus_c 的回复:
但是如果在OnStart中添加一个循环(改时间参数)就只能执行一次,函数第二次开始就没有执行。
------------------------
很明显应该是第二次执行GetTrainInfo异常导致的,循环一次后遇到异常退出了。
应该是GetTrainInfo中出现异常,在GetTrainInfo函数中处理异常看看什么情况。
但是如果在OnStart中添加一个循环(改时间参数)就只能执行一次,函数第二次开始就没有执行。
------------------------
很明显应该是第二次执行GetTrainInfo异常导致的,循环一次后遇到异常退出了。
应该是GetTrainInfo中出现异常,在GetTrainInfo函数中处理异常看看什么情况。
请问异常该怎么调试?
作者: wyb201 发布时间: 2011-12-05
第二次执行就跟本不进入到函数中,直接中断退出了,实在不明白,该怎么办啊? 异常调试么?
作者: wyb201 发布时间: 2011-12-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28