VS 2008 Отладка - найдите, какой диалог загружен

Я новичок в visual studio/c++ и получил проект с большим количеством диалогов, всплывающих окон и т.д. При отладке я хотел бы знать, какой диалог загружен на экран. Есть ли способ найти это в визуальной студии?

Благодарю.

Изменить - я не могу установить точку останова, так как я не знаю, где находится код, который выполняет диалог (поскольку база кода довольно большая, трудно найти). Я бы хотел, чтобы диалоговое окно узнало его имя, то есть - IDC_DIALOG_NAME ect..

3 ответа

Просто нажмите Break-All в отладчике и загляните в стек вызовов!


Это действительно упрощенно, но, когда появляется диалоговое окно, у него обычно есть подпись. Вы можете легко найти файл ресурсов для заголовка, и он должен указать ресурс диалога (например, ID), которому он принадлежит. Оттуда вы можете найти базу кода для определения ресурса диалога. Это должно привести к правильному классу диалога.


Не уверен, насколько вы знакомы с отладкой, поэтому я объясню это, как будто вы новичок в этом в целом. Сначала вы захотите установить некоторые точки останова. Вы можете сделать это, щелкнув правой кнопкой мыши по строке места, где вы хотите поставить точку останова, точку останова> Вставить точку останова.

Точка прерывания остановит программу на этой строке в вашем коде после ее компиляции. Как только он приостановится, вы можете посмотреть много информации о том, какие данные хранится в вашей программе. Для этого нажмите alt + 4, чтобы открыть окно локальных переменных. В этом окне отображаются все текущие значения ваших локальных переменных в точке паузы. Если вы хотите следовать за переменной, вы можете щелкнуть ее правой кнопкой мыши и выбрать "смотреть". Это изолирует переменную на своей вкладке, и по мере того, как вы переходите между точками останова, вы можете легче следовать за ней.

Поэтому, если вы хотите посмотреть, какой класс или функция выводит диалог, это будет хорошим способом сделать это.

http://msdn.microsoft.com/en-us/library/vstudio/y740d9d3(v=vs.90).aspx Эта страница может предложить вам дополнительную помощь!

licensed under cc by-sa 3.0 with attribution.