我一直在开发一个程序,在该程序中,我使用EnumWindows函数检测 Activity 的Windows并将其句柄保存在列表中。
现在,每次运行到此为止的调试器时,调试器都会跳过带有EnumWindows函数的行,而不会返回错误。
我的代码有问题吗?还是我必须获得一个额外的库才能使用此功能?希望有人知道如何解决这个问题
这是包含EnumWindows的类的代码:
Center :: Center(int initInterval) : interval(initInterval)
{
detectWindows();
}
int Center :: getInterval()
{
return interval;
}
void Center :: setInterval(int intrvl)
{
interval = intrvl;
}
void Center :: initializeDisplays()
{
}
void Center :: detectWindows()
{
EnumWindows(detectWindowsProc, (LPARAM)&windowList); //Debugger skips this line
}
最佳答案
“跳过界线”是什么意思?调试器将单步执行它,但不能执行,因为您没有Windows函数可用的调试信息。通常,如果在detectWindowsProc
中放置一个断点,则应该命中该断点。如果有要枚举的窗口,EnumWindows
有一些奇怪的怪癖,请参见MSDN并在其中进行评论以获取更多信息:
EnumWindows function