Как построить рабочее пространство из примеров DDK?

Я новичок в программировании win32, а также в программировании драйверов. Я установил Windows DDK в свою систему и получил несколько примеров с DDK, но в этих примерах нет файла dsw.

Я хотел знать, как создать файл .dsw, чтобы открыть это рабочее пространство в VC6.


person Vinayaka Karjigi    schedule 16.06.2009    source источник


Ответы (5)


Большинство людей, которые создают проекты DDK/WDK в Visual Studio, делают это с помощью проекта makefile, который вызывает утилиту DDK build.exe. Это работает довольно хорошо — вы получаете возможности навигации по коду Visual Studio при создании проекта DDK с использованием стандартных поддерживаемых инструментов DDK.

Обратите внимание, что DDK поставляется с собственным набором компиляторов, и эти компиляторы следует использовать для сборки проектов DDK.

В OSR есть небольшой набор cmd-скриптов, которые должны упростить эту задачу (прошли годы с тех пор, как я с ними что-то делал; я действительно не могу вспомнить, насколько хорошо они работают):

Другой аналогичный инструмент доступен от Hollis Technology:

Что касается отладки, то, к сожалению, отладчик VS не будет работать для отладки драйверов в режиме ядра. Для этого получите пакет Инструменты отладки для Windows, который имеет отличный набор отладчиков. Отладчик с графическим интерфейсом, WinDbg, довольно хорош, даже если он не совсем соответствует удобству использования Visual Studio. И документация с инструментами отладки превосходна — вы можете многое узнать о внутреннем устройстве Windows, просто прочитав документацию WinDbg.

person Michael Burr    schedule 16.06.2009
comment
собственный набор компиляторов -- Правда? Я думал, что он использует тот же (управляемый командной строкой) компилятор, что и IDE. - person ChrisW; 16.06.2009
comment
Как правило, они немного отличаются в области младших номеров версий — я не говорю, что вы столкнетесь с кучей проблем, но команда DDK определенно не будет поддерживать другие компиляторы. Кроме того, когда выходит новая версия Windows, в компиляторе DDK часто появляются новые вещи, которых нет в выпущенной версии VC. - person Michael Burr; 16.06.2009

В последний раз, когда я смотрел (это было много лет назад), вы не создаете драйверы устройств с помощью Visual Studio IDE: в DDK есть собственная утилита build.exe (похожая идея, но не то же самое, что makefiles); и, по-видимому, это все еще верно по состоянию на начало 2008 года, см. http://groups.google.com/group/microsoft.public.development.device.drivers/browse_thread/thread/4382c9b66f8611e9?pli=1

Я ожидаю, что "как собрать" описано в документации DDK.

person ChrisW    schedule 16.06.2009
comment
Привет ChrisW, спасибо за эту информацию. это значит, что нет возможности отлаживать примеры через DDK? Я хотел выполнять построчно и понимать поток. Как это можно сделать для примеров DDK, ожидающих вашего ответа? - person Vinayaka Karjigi; 16.06.2009
comment
Что ж, сборка может генерировать символические файлы отладочной информации, поэтому отладка возможна. Я не думаю, что вы можете использовать отладчик Visual Studio IDE (хотя в любом случае это может зависеть от того, какой тип драйвера устройства используется: это пользовательский режим или интересующий вас драйвер режима ядра?). Неиспользование отладчика VS IDE не означает, что вы не можете выполнять отладку: это означает, что вы используете отладчик другого типа (когда я этим занимался много лет назад, основные отладчики режима ядра назывались WinDbg и/или Softice). - person ChrisW; 16.06.2009
comment
Вы по-прежнему должны иметь возможность использовать отладчик, хотя, вероятно, отладчик Visual Studio не может быть использован для разработки драйверов. - person 1800 INFORMATION; 16.06.2009
comment
Это может показаться не очень хорошей новостью, но как только вы научитесь собирать образец, отлаживать его и читать документацию DDK, остальная часть работы станет более или менее обычной. - person ChrisW; 16.06.2009

Я думаю, вам лучше интегрироваться с Visual Studio 2005, 2008 или 2010 с помощью этого инструмента:

http://visualddk.sysprogs.org/versions/1.5.6

person arun kumar non ascii    schedule 27.12.2011

ChrisW прав, вы не можете использовать Visual Studio (если нет способа установить его).

В любом случае, для начала отладки вы можете использовать DebugView для печати простых сообщений с помощью DbgPrint.

person Nick Dandoulakis    schedule 16.06.2009

В наши дни VC6 очень устарел, нельзя ли использовать более новую версию? Во всяком случае, насколько я помню, вы можете просто открыть файл проекта в качестве рабочей области, IDE создаст для вас файл .dsw.

person 1800 INFORMATION    schedule 16.06.2009
comment
Привет, спасибо за такой быстрый ответ. Но если я прав, в примерах win ddk нет файла проекта. Я вижу только makefile, makefile.mk и файл проекта, на который вы ссылаетесь, это файл .dsp, которого нет в примерах DDK, жду ваших предложений - person Vinayaka Karjigi; 16.06.2009