MFC中计时器问题
今天在写程序是遇到一个很奇怪的问题,现在虽然解决了但我还没找到问题的原因。今天在给以前的一个小软件加一个功能时我在代码中加了一个计时器Timer()
然后在OnTimer()中对这个计时器响应,这个响应函数大概是这样的:
OnTimer(......)
{
if (nIdEvent = Timer1)
{
......
}
else if (nIdEvent == Timer2)
{
char dataBuf[100];
.....
}
......
}
问题是这样写完后当程序运行时出现了莫名其妙的错误,第二个计数器中的响应代码会影响到第一个计时器的处理代码,而且当程序刚开始运行时第二个计时器都还没启动。后来排除了很久发现是第二个计时器的处理代码中所定义的数组的问题,就是dataBuf[100]的问题,如果把它放在if语句的前面就没有问题了。我不知道这是为什么?这里把它放在if语句的分枝中和外面所申请的内存都应该是在栈上的,它们的主要区别不知道是什么?????????