Скачать win2000DDK, хочю с помощью VC++ драйвер (*.sys) скомпилить, но ничо не получается, пишет что в ntddk.h какието ошибки. Я навена не грамотно прилепил DDK инклюдники к VC++. Есть ли какойнить альтернативный способ компилить драйвера?? или как можно с VC++ их компилить и как прилепить DDK инклюдники.
Помогите кто-нить плиз!!
В нормальных версиях VC (proffessional, enterprise) те же...02.02.04 14:23 Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 02.02.04 14:27 Количество правок: 2
> Скачать win2000DDK, хочю с помощью VC++ драйвер (*.sys) > скомпилить, но ничо не получается, пишет что в ntddk.h > какието ошибки. Я навена не грамотно прилепил DDK > инклюдники к VC++. Есть ли какойнить альтернативный способ > компилить драйвера?? или как можно с VC++ их компилить и > как прилепить DDK инклюдники. > Помогите кто-нить плиз!!
В нормальных версиях VC (proffessional, enterprise) те же компилятор, линкер и т.д. Все что нужно сделать - указать пути к include, lib, #define, и конечное правильные опции, особенно для link.
Рекомендую взять DDK от W2K3 (там в комплекте обновленный для W2K), и VS.NET 2003 (не просто VS.NET а именно 2003).
Готовых проектов VC 6.0 у меня не сохранилось, я уже давно перешел на VC.NET. Но проект для VC из VS.NET могу подкинуть - http://leo.yuriev.ru/?131 При желании могу дать и саму "C++ Templates Library for Windows Drivers".
Удачи!
Очень ценная инфа! Спасибо!
02.02.04 21:33 Автор: ih8u <i hate you> Статус: Member
> Скачать win2000DDK, хочю с помощью VC++ драйвер (*.sys) > скомпилить, но ничо не получается, пишет что в ntddk.h > какието ошибки. Я навена не грамотно прилепил DDK > инклюдники к VC++. Есть ли какойнить альтернативный способ > компилить драйвера?? или как можно с VC++ их компилить и > как прилепить DDK инклюдники. > Помогите кто-нить плиз!!
> вот эту тулзу(QuickSYS), и не морочь людям голову: > http://www.ntkernel.com/downloads/QuickSYS.src.zip Но кста, создает не совсем точный проект. Самый точный метод - выдирание ключей непосредственно из логов.
не согласен, она создает правильный проект, который к тому...02.02.04 03:23 Автор: NeuronViking Статус: Незарегистрированный пользователь Отредактировано 02.02.04 03:26 Количество правок: 1
> > вот эту тулзу(QuickSYS), и не морочь людям голову: > > http://www.ntkernel.com/downloads/QuickSYS.src.zip > Но кста, создает не совсем точный проект. Самый точный > метод - выдирание ключей непосредственно из логов.
не согласен, она создает правильный проект, который к тому же можно лехко про-адджастить в любое время, более того, эта тулза с исходниками, так что можешь и добавить/убрать от туда чтонть свое...
отличная, легкая и нужная тулза, имхо.
а "выдирание ключей непосредственно из логов" - это имхо мазохизм =) и @#$ова тонна лишнего времени, уж если на то пошло, то лучше создать свой кастом баттон на тулбаре в Вижуал студии и назначить ему маленький БАТничек и все дела...
да и еще, если уж ты такой прЫнципиальный ;) то "самый" точный метод - это все делать тока в ДДК через его утилиты(это насчет компилляции и линковки в Вижуал студии;). хе хе...
[C++] setenv01.02.04 16:22 Автор: amirul <Serge> Статус: The Elderman
> Скачать win2000DDK, хочю с помощью VC++ драйвер (*.sys) > скомпилить, но ничо не получается, пишет что в ntddk.h > какието ошибки. Я навена не грамотно прилепил DDK > инклюдники к VC++. Есть ли какойнить альтернативный способ > компилить драйвера?? или как можно с VC++ их компилить и > как прилепить DDK инклюдники. > Помогите кто-нить плиз!! Как уже сказали, надо из DDK-окружения компилить. Устанавливается оно командой setenv (находится в каталоге bin в DDK). Из этого окружения можно и VC потом запустить (msdev.exe), но при этом надо еще и проект сделать для VC. Во первых в Compuware Driver Studio есть тулза для конвертирования sources файла в проект VC6-го (*.dsp). Но она генерит какой-то глючный проект. Я поступаю проще:
Собираю драйвер обычным способом (build в каталоге с sources файлом) и получаю buildfre.log (или buildchk.log если окружение было checked). После этого копирую ключи для компилятора в окно для ключей компилятора, а для линкера - в ключи для линкера. После таких манипуляций проект всегда собирается нормально на этой же машине. Если предполагается сборка на разных машинах, то абсолютные пути надо позаменять всякими $(BASEDIR), $(DDK_INC_PATH), $(DDK_LIB_PATH) и т.д.
Балин, да, я делаю Check build environmen - так в инструкции...02.02.04 11:38 Автор: ih8u <i hate you> Статус: Member
> > Скачать win2000DDK, хочю с помощью VC++ драйвер > (*.sys) > > скомпилить, но ничо не получается, пишет что в ntddk.h > > какието ошибки. Я навена не грамотно прилепил DDK > > инклюдники к VC++. Есть ли какойнить альтернативный > способ > > компилить драйвера?? или как можно с VC++ их компилить > и > > как прилепить DDK инклюдники. > > Помогите кто-нить плиз!! > Как уже сказали, надо из DDK-окружения компилить. > Устанавливается оно командой setenv (находится в каталоге > bin в DDK). Из этого окружения можно и VC потом запустить > (msdev.exe), но при этом надо еще и проект сделать для VC. > Во первых в Compuware Driver Studio есть тулза для > конвертирования sources файла в проект VC6-го (*.dsp). Но > она генерит какой-то глючный проект. Я поступаю проще: > > Собираю драйвер обычным способом (build в каталоге с > sources файлом) и получаю buildfre.log (или buildchk.log > если окружение было checked). После этого копирую ключи для > компилятора в окно для ключей компилятора, а для линкера - > в ключи для линкера. После таких манипуляций проект всегда > собирается нормально на этой же машине. Если предполагается > сборка на разных машинах, то абсолютные пути надо > позаменять всякими $(BASEDIR), $(DDK_INC_PATH), > $(DDK_LIB_PATH) и т.д.
Балин, да, я делаю Check build environmen - так в инструкции написано, а мне вылетает вот что -
-----------------------------------------------------------------------------
New or updated MSVC detected. Updating DDK environment....
Setting environment for using Microsoft Visual C++ tools.
"Ш∙♠" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Starting dirs creation...Completed.
Ты, вроде, прямо из VC пытаешься компилить, а это не есть гуд
1. Нужно консоль DDK запустить.
2. Вообще интересно какая конкретно версия VC(6/7)/DDK(w2k/XP)
3. Интересно какие сообщения выдаются при запуске консоли DDK
(она должна определить наличие VC)
и при build
4. Если из VC компилить, то нужно порядок использования
заголовочных файлов изменить и настройки компилятора
ЗЫ: Если хочешь, могу парочку книг порекомендовать (купить их придется ;) )
Ну кароче у меня VC интерпрайз эдишн 6.0, а DDK win2k
01.02.04 13:52 Автор: ih8u <i hate you> Статус: Member
Ну кароче у меня VC интерпрайз эдишн 6.0, а DDK win2k
В инструкции к DDK написано что можно компилить в VC (только интерпрайз и профешенол) только надо сервис пак установить.
1. Насчет консоли DDK :
Start -> Development Kits -> W2k -> Checked build Environment/Free build Environment
(отладочная и релизные варианты)
Запускаешь одну из них ...
cd C:\NTDDK\src\kernel\mca\imca\sys, а затем build ,- если сработает нормально, значит DDK видит VC - а это и есть минимально необходиое ...
2. Компиляция под VC6 ("доработать напильником по смыслу"):
- Созадть пустой проект и добавить к нему исходняки драйвера
- В "Tools" -> "Options" -> "directoris":
прописать пути к хедерам DDK (C:\NTDDK\inc\) и поднять и вверх
прописать пути к библиотекам DDK (C:\NTDDK\libchk\i386) и поднять их вверх
- В "Project Seting":
- Для компилятора в "Project options:" добавить что-нибудь типа:
/nologo /G4 /Gz /MTd /W3 /Z7 /Oi /Gf /Gy /I "E:\NTDDK\inc" /D "_DEBUG" /D X86 /D "i386" /D "STD_CALL" /D "CONDITION_HANDLING" /D "WIN32_LEAN_AND_MEAN" /D "NT_UP" /D "RDRDBG" /D "SRVDBG" /D "DBG" /D "_IDWBUILD" /U "NT_INST" /Fo".\Debug/" /Fd".\Debug/" /FD /Zel /c
- Для линковщика в "Project options:" добавить что-нибудь типа:
ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000" /entry:"DriverEntry@8" /incremental:no /pdb:".\Debug/testdrv1.pdb" /debug /debugtype:both /machine:I386 /nodefaultlib /out:".\Debug\testdrv1.sys" /SUBSYSTEM:native
- выходным файлом сделать *.sys
1. Насчет консоли DDK :02.02.04 13:14 Автор: ih8u <i hate you> Статус: Member