函数没执行完就返回了,晕
这个函数是在一个Timer回调函数中被重复调用的(每隔一段时间调一次),但函数不知道为什么只执行前两句,m_pIBoard是一个接口指针
short _stdcall CSysBoard::SingleIO(LPVOID pDataBuf)
{
if(m_pIBoard)
m_pIBoard->SingleIO();
// 函数以下部分不会被执行到
if(!m_bSave)
{
...
}
...
return 0;
}
如果把前两句改成
if(m_pIBoard)
{
m_pIBoard->SingleIO(); // 在此设断点查看@err,hr = S_OK
DWORD e = GetLastError(); // 此句不会被执行
}
其中接口m_pIBoard的实现函数大体如下
short _stdcall CBoard::SingleIO()
{
// do sth easy just like "int a = b;"
...//在此设断点,可以执行,直到此函数结束}
return 0;
}
顺便说一下,这两个函数分别在不同的动态库中,但在同一进程中,断点调试点进入m_pIBoard->SingleIO(),提示Access Violution,单步高度,直接又返回到CSysBoard的SingleIO的开始{处了