У меня есть следующее:
classA::FuncA()
{
... code
FuncB();
... code
}
classA::FuncB(const char *pText)
{
SelectObject(m_hDC, GetStockObject ( SYSTEM_FONT));
wglUseFontBitmaps(m_hDC, 0, 255, 1000);
glListBase(1000);
glCallLists(static_cast<GLsizei>(strlen(pText)), GL_UNSIGNED_BYTE, pText);
}
Я могу поразить точки останова в любом месте FuncA. Если я пытаюсь войти в FuncB, он переходит. Он будет принимать точку останова в FuncB, но никогда не достигнет ее. Я знаю, что он выполняет FuncB, потому что я могу поместить вызов MessagBox () в FuncB и получить окно сообщения.
Я новичок в VS2005 через несколько лет после интенсивного использования VC6. Одна из подобных ситуаций, которую я помню из моих дней VC6, заключается в том, что информация о символах недоступна. Однако в этом случае обе функции находятся в одном файле, поэтому информация о символах должна быть правильной. Также в этом случае я думаю, что вы даже не могли установить точку останова.
Я испробовал все глупые вуду, как восстановление всего решения.
Что за глупость я пропускаю?
РЕДАКТИРОВАТЬ: Добавлен код для FuncB в ответ на комментарий о том, что он может быть по сути встроенным. (Это просто точный пример кода из MSDN для wglUseFontBitmaps [минус комментарии здесь]). Я не понимаю, как встраивание это помешало бы проходить через каждый звонок.