编译器是VC6.0,在构造函数定义m_bFirstGo = TRUE;在菜单“新游戏”的处理函数里是这样的:
if(!m_bFirstGo)
{
......
}
而要使m_bFirstGo变成FALSE需要点击另外一个菜单项,原先好好的,我又写了几个函数,这几个函数根本没用到m_bFirstGo,当我点击菜单“新游戏”,m_bFirstGo变成了FALSE,执行了上面if里的语句。 最后祝大家新年快乐!
if(!m_bFirstGo)
{
......
}
而要使m_bFirstGo变成FALSE需要点击另外一个菜单项,原先好好的,我又写了几个函数,这几个函数根本没用到m_bFirstGo,当我点击菜单“新游戏”,m_bFirstGo变成了FALSE,执行了上面if里的语句。 最后祝大家新年快乐!
to:fengqinggao(风清高) 已经发了,注意查收,麻烦你了同时也谢谢大家
有一点我不完全同意,m_Steps是一个数组,已有固定大小,不是动态new出来的,STEP的结构是
typedef struct _STEP{
BYTE chessman;
BYTE coordinate;
}STEP;STEP m_Steps[225];
sizeof(STEP)等于2字节,后来我又#define STEP 128,而这是STEP应该占有4个字节,所以
memset(m_Steps,0,225*sizeof(STEP));大小增加了一倍,覆盖了下面的变量(包括m_bFirstGo),
罪魁祸首还是在重名上,我是这么理解的。