- •Министерство образования и науки российской федерации
- •Введение
- •1.WindowsApi. Определение и задачи.
- •2. Интерфейс программирования приложенийWin32
- •2.1 Расширение функциональности WinMain.
- •2.2 Класс окна
- •2.3 Создание окна
- •2.4 Расширение функциональности WndProc
- •3. С чего начать? Переход от Win32 к Win64
- •3.1 Операционная система x64
- •4.1 Как сделать код совместимым с Win64
- •4.2 Отладка
- •Заключение
- •5. Приложения
- •5.1 Приложение 1.
- •5.2 Приложение 2.
- •Литература
4.2 Отладка
И вот вы наконец добились чистой компиляции Win32- и x64-версий своего кода. Остался последний фрагмент головоломки - выполнение и отладка этого кода. Хотя вы скомпилировали свою x64-версию на компьютере с процессором x64, для отладки в режиме x64 понадобятся средства удаленной отладки, предоставляемые Visual Studio. К счастью, если вы работаете с Visual Studio IDE на 64-разрядной машине, IDE сама позаботится обо всех необходимых операциях. Если по какой-то причине вы не можете использовать удаленную отладку, остается лишь один вариант - взять x64-версию WinDbg.
Если вы никогда не пользовались удаленной отладкой, сильно волноваться не стоит. Как только вы ее настроите, она почти ничем не будет отличаться от локальной отладки.
Первый шаг - установка на целевой компьютер 64-разрядной MSVSMON. Обычно это делается с помощью программы RdbgSetup, поставляемой с Visual Studio. После запуска MSVSMON зайдите в меню Tools для настройки соответствующих параметров защиты соединения между вашей 32-разрядной Visual Studio и экземпляром MSVSMON.
Далее из Visual Studio сконфигурируйте свой проект на применение удаленной отладки x64-кода. И для начала откройте окно свойств проекта (рис. 3).
Рис. 3.Выбор платформы сборки
Убедитесь, что текущей является ваша 64-разрядная конфигурация, и выберите Debugging в разделе Configuration Properties. Ближе к верхней части вы увидите раскрывающийся список Debugger to launch. Его изначальное значение - Local Windows Debugger. Смените его на Remote Windows Debugger. Под этим списком вы можете задать удаленную команду (например, имя программы), которая должна выполняться в момент начала отладки, а также указать имя удаленного компьютера и тип соединения.
Если вы все правильно настроили, можете начинать отладку своего x64-приложения точно так же, как и Win32-программы. О соединении с MSVSMON свидетельствует строка "connected", которая появляется в трассировочном окне этой программы при каждом успешном подключении отладчика. С этого момента большинство операций выполняется так же, как и в хорошо известном вам отладчике Visual Studio. Не забудьте открыть окно регистров, чтобы увидеть все 64-битные регистры, а также заглянуть в окно дизассемблированного кода, чтобы посмотреть на такой знакомый, но все же слегка другой ассемблерный x64-код.
Заметьте, что 64-разрядный минидамп в отличие от 32-разрядного нельзя напрямую загрузить в Visual Studio. Вместо этого нужно использовать Remote Debugging. Кроме того, в настоящий момент Visual Studio 2005 не поддерживает отладку interop-вызовов между управляемым и неуправляемым 64-разрядным кодом.
Заключение
Win API - мощный инструмент для создания приложений под операционные системы семейства Windows. С помощью этого интерфейса можно проектировать и создавать приложения как на высоком уровне, используя конструкторы диалогов и окон, так и на низком - вручную описывая все диалоги и т.п. Однако и на высоком уровне иногда приходится много работать, чтобы достичь необходимого результата. Win API имеет множество библиотек, для создания разнородных приложение, например, библиотеки opengl32.lib, glu32.lib, glut.lib и прочие позволят использовать оконное приложение, для вывода графической информации, непосредственно в окно, что является важным в современной игровой индустрии.