Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите с настройкой проекта Visual C++ 6.0  (Прочитано 25968 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
acc15
Гость
« : 19-10-2005 20:48 » 

Грубо говоря вопросы :
1. Как мне в Visual C++ 6.0 сделать проект чтобы выполнялась чёткая проверка на синтаксис?? без компиляции чёто не хочет...
2. Вообще возможно такое, чтобы подключить внешний компилятор и линковщик (DDKшные) чтобы прямо из VC++ 6.0 можно было компилить и линковать драйвер... т.е. на после нажатия кнопки Build All... у меня вышел готовый sys/vxd файл. Если можно то объясните как...

void Заранее спасибо(int x,int y);
« Последнее редактирование: 19-10-2005 21:01 от acc15 » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 20-10-2005 04:11 » 

1) без компиляции и не будет Улыбаюсь (забудь бейсик)
2) не знаю
Записан

acc15
Гость
« Ответ #2 : 20-10-2005 09:05 » 

1) Бейсик я и не знал... Просто в одной книге по написанию драйверов написано следующее :
Цитата
... Редактирование, разумеется, удобнее всего выполнять в каком-нибудь редакторе интегрированной среды. Рекомендуется использовать редактор из среды Visual Studio, поскольку в нём производится динамический контроль синтаксиса и типов данных языка C. ...
2) Знаю как сделать это в Visual C++ .NET (в книге написано), но вот как в Visual C++ 6.0
В .NET там приводится текст некоторого файла Visual Studio Solution File (*.sln) и текст настроек проекта (*.vcproj), там так же сказано что эти настройки можно сделать интерактивно в Project->Settings но у VC++ 6.0 и .NET файлы проекта отличаются настолько.....
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 20-10-2005 09:13 » 

"динамический контроль" - может и есть (вроде написал "ddd." и дальше откроется список членов класса объекта ) , но его не видно до компиляции Улыбаюсь

ну и ещё слова типа new, true, false цветом выделит - не более того

« Последнее редактирование: 20-10-2005 09:14 от Алексей1153 » Записан

vvoid
Гость
« Ответ #4 : 20-10-2005 16:11 » 

Привет, извиняюсь, что не по проблеме, но что за книга по написаню драйверов. И есть ли она у вас в электронном виде? Если есть, то не могли бы вы поделиться со мной на vvoidd(ПЁС)gmail.com
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 20-10-2005 16:59 » 

Да сделай просто пустой проект и добавь к нему файлы твоего драйвера. А под динамическим контролем скорее всего понимается цветовая подсветка текста для ключевых слов и тп
Большего из студии для драйверов ты не выжмешь.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
acc15
Гость
« Ответ #6 : 20-10-2005 17:47 » 

Под словом "пустой" можно понимать много что... Пустой DLL проект. Пустой Utility проект... там их куча... да и кроме того хотелось бы связи с DDK из VC++ 6.0... Уж очень утомительно запускать Builder из состава DDK, когда можно нажать кнопку Build и все проблеммы решены... Да и кроме того там (в книге) сказано что не надо будет делать MAKEFILE и SOURCES... это очень удобно... Неужели все пишут переключаясь с VC++ на DDK Build, заморачиваясь с мейкфайлами и т.п. --- это ж не этично...

Цитата
ну и ещё слова типа new, true, false цветом выделит - не более того
Выделение цветом - не проверка на синтаксис... вся проверка только при компиляции... я вот чо не понимаю... У DDK и обычного VC++ компилятор не один и тот же??? (cl.exe)
« Последнее редактирование: 20-10-2005 17:53 от acc15 » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 21-10-2005 09:02 » 

Значица так, я себя большим дровным спецом не считаю. Один раз для СОМ порта драйвер делал, именно с ДДК и 6ой студией. Поэтому делюсь опытом.
Когда ты запускаешь бат файлы они подготавливают среду для компиляции дров в частности регистрируют особые переменные окружения, которые в студии неизвестны. Поэтому про компиляцию из студии скажу одно - я долго пытался сделать именно то, что ты тоже хочешь сделать - в итоге я сделал пустой DLL проект ведь запускать всё равно ничего не сможешь. Даже пытался вставить в него необходимые хедеры из ДДК, с неизвестными ID, чтобы можно было компилировать. Но в итоге так ничего не получил. Единственная польза была от редактора, что он мне показывал "грубые" ошибки. А остальное как я понял зависит от всевозможнейших define и тд.
Короче, угробив массу времени я отказался от этой затеи.
Единственое, что тогда нарыл - это среды разработки драйверы других производителей, которые позволяли дополнять визард студии проектами для дров, но они были все платные и шеф посчитал, что дешевле будет если я сделаю это по старинке.

зы Кстати - если это у меня не получилось, или если другие "молчат" , то это ещё не означает, что это АБСОЛЮТНО невозможно.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
acc15
Гость
« Ответ #8 : 21-10-2005 09:39 » 

Цитата
Единственое, что тогда нарыл - это среды разработки драйверы других производителей, которые позволяли дополнять визард студии проектами для дров, но они были все платные и шеф посчитал, что дешевле будет если я сделаю это по старинке.

Шефа у меня нету.. я сам себе шеф, поэтому нарыть кряк я думаю смогу... не подскажешь названия этих сред разработки которые дополняют проектами для дров??
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #9 : 21-10-2005 10:01 » 

Давно это было. Но помойму одна была - Driver Studio, а  в названии другой стояло Tool (но тут я не уверен). Я это делел в 2001 году. Тогда было ИМХО две вещи про которые много говорилось и писалось. Может будет лучше если ты новую тему откроешь? типа "в чём лучше дрова разрабатывать", тут есить корифеи по ним - они наверняка тебе более квалифицировано расскажут.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
acc15
Гость
« Ответ #10 : 21-10-2005 10:49 » 

зачем мне открывать новую тему когда мне надо добиться настроенного проекта в VC++ ... писать то я всё равно в нём буду... В нём и есть лучше...
зы: скачаю Driver Studio... thx
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 21-10-2005 11:16 » 

по поводу компиляции дров:
компилирую я это дело все прямо в VC6. единственное что стоит сделать - обновить версию компилятора... (иначе XPшные драйвера вообще не скомпилятся - там кое какие опции новые нужны)
настройки следующие:

Релиз XP2600:*************************************************************************
Компилятор:
/nologo /G6 /Gz /ML /W3 /Zi /Oi /X /I "$(BASEDIR_XP2600)\inc\wxp" /I "$(BASEDIR_XP2600)\inc\ddk\wxp" /I "$(BASEDIR_XP2600)\inc\crt" /D DBG=1 /D "_DEBUG" /D "_WINDOWS_" /D "WIN32" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0400 /D _WIN32_IE=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D FPO=0 /D _DLL=1 /D "DRIVER" /D "_WIN2K_COMPAT_SLIST_USAGE" /FAs /Fa"Debug_WinXP2600/" /FR"Debug_WinXP2600/" /Fo"Debug_WinXP2600/" /Fd"Debug_WinXP2600/" /FD /Zel /QIfdiv- /QIf /QI0f /GF -cbstring /c

BASEDIR_XP2600 = путь к DDK директории.

Линкер:
ntoskrnl.lib hal.lib wmilib.lib /nologo /base:"0x10000" /version:2.2 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /incremental:no /pdb:"Debug_WinXP2600/имя.pdb" /map:"Debug_WinXP2600/имя.map" /machine:IX86 /nodefaultlib /out:"Debug_WINXP2600\имя.sys" /libpath:$(BASEDIR_XP2600)\lib\wxp\i386" /debug:FULL /subsystem:native,1.10 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /MERGE:.rdata=.text /SECTION:INIT,d /driver /FULLBUILD /RELEASE /OPT:REF /OPT:ICF /align:0x80 /osversion:5.00 /IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096

Дебаг XP2600:*************************************************************************
Компилятор:
/nologo /G6 /Gz /ML /W3 /Zi /Oi /X /I "$(BASEDIR_XP2600)\inc\wxp" /I "$(BASEDIR_XP2600)\inc\ddk\wxp" /I "$(BASEDIR_XP2600)\inc\crt" /D DBG=1 /D "_DEBUG" /D "_WINDOWS_" /D "WIN32" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0400 /D _WIN32_IE=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D FPO=0 /D _DLL=1 /D "DRIVER" /D "_WIN2K_COMPAT_SLIST_USAGE" /FAs /Fa"Debug_WinXP2600/" /FR"Debug_WinXP2600/" /Fo"Debug_WinXP2600/" /Fd"Debug_WinXP2600/" /FD /Zel /QIfdiv- /QIf /QI0f /GF -cbstring /c

Линкер:
ntoskrnl.lib hal.lib wmilib.lib /nologo /base:"0x10000" /version:2.2 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /incremental:no /pdb:"Debug_WinXP2600/имя.pdb" /map:"Debug_WinXP2600/имя.map" /machine:IX86 /nodefaultlib /out:"Debug_WINXP2600\имя.sys" /libpath:"$(BASEDIR_XP2600)\lib\wxp\i386" /debug:FULL /subsystem:native,1.10 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /MERGE:.rdata=.text /SECTION:INIT,d /driver /FULLBUILD /RELEASE /OPT:REF /OPT:ICF /align:0x80 /osversion:5.00 /IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096

Win2000 релиз*************************************************************************
Компилятор:
/nologo /G6 /Gz /ML /W3 /O2 /I "$(BASEDIR_NT5)\inc" /I "$(BASEDIR_NT5)\inc\ddk" /I "$(BASEDIR_NT5)\inc\ddk\wdm" /D "NDEBUG" /D "_WINDOWS_" /D "WIN32" /D "_MBCS" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0500 /D _WIN32_IE=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D FPO=0 /D _DLL=1 /D "DRIVER" /D "_IDWBUILD" /D "_NT2000_SYS_DRIVER_" /FAs /Fa"Release_Win2000/" /FR"Release_Win2000/" /Fo"Debug_Win2000/" /Fd"Debug_Win2000/" /FD /Zel /QIfdiv- /QIf /QI0f /GF -cbstring /c

Линкер:
ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000" /version:2.2 /entry:"DriverEntry@8" /subsystem:windows /pdb:none /map:"Release_Win2000/имя.map" /machine:I386 /nodefaultlib /out:"Release_WIN2000\имя.sys" /libpath:"$(BASEDIR_NT5)\libfre\i386\" -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d /OPT:NOREF -FORCE:MULTIPLE -FULLBUILD -MERGE:.rdata=.text -align:0x20 -osversion:5.00 -subsystem:native,1.10 -driver:WDM -IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 /RELEASE

Дебаг:*************************************************************************
Компилятор:
/nologo /G6 /Gz /ML /W3 /Zi /Oi /I "$(BASEDIR_NT5)\inc" /I "$(BASEDIR_NT5)\inc\ddk" /I "$(BASEDIR_NT5)\inc\ddk\wdm" /D "_DEBUG" /D DBG=1 /D "_WINDOWS_" /D "WIN32" /D "_MBCS" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0500 /D _WIN32_IE=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D FPO=0 /D _DLL=1 /D "DRIVER" /D "_IDWBUILD" /D "_NT2000_SYS_DRIVER_" /FAs /Fa"Debug_Win2000/" /FR"Debug_Win2000/" /Fo"Debug_Win2000/" /Fd"Debug_Win2000/" /FD /Zel /QIfdiv- /QIf /QI0f /GF -cbstring /c

Линкер:
ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000" /version:2.2 /entry:"DriverEntry@8" /subsystem:windows /incremental:no /pdb:"Debug_Win2000/имя.pdb" /map:"Debug_Win2000/имя.map" /debug /machine:I386 /nodefaultlib /out:"Debug_WIN2000\имя.sys" /libpath:"$(BASEDIR_NT5)\libfre\i386\" -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d /OPT:NOREF -FORCE:MULTIPLE -FULLBUILD -MERGE:.rdata=.text -align:0x20 -osversion:5.00 -subsystem:native,1.10 /driver:WDM -debug:FULL -IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096

Может кой какие дефенишены лишние- но они не помешают)
все проверено.
98 и 95 надеюсь никому не нужны?)))
PS мои
ml.exe ver 6.15.8803
link.exe ver 6.00.8447
для XP - 7 версия компилятора и линкера нужна... впрочем у меня и так работает НО! я там мог какие то библиотеки обновить... компилятора/линкера.
точнее уже не помню.

PPS
лан... до кучи для 98.
релиз98:*************************************************************************
компилятор
/nologo /G6 /Gz /ML /W3 /O2 /I "$(BASEDIR)\inc" /I "$(BASEDIR)\inc\win98" /I "$(BASEDIR)\inc\win98\inc16" /D "NDEBUG" /D "_DEBUG" /D "_X86_" /D "_M_IX86" /D "i386" /D NT_UP=1 /D "WIN32" /D WIN32=100 /D _WIN32_WINNT=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D "_WIN98_SYS_DRIVER_" /FAs /Fa"Release_Win98/" /FR"Release_Win98/" /Fo"Debug_Win98/" /Fd"Debug_Win98/" /FD /Zel -cbstring /QIfdiv- /QIf /QI0f /GF /c

линкер
wdm.lib ntoskrnl.lib /nologo /base:"0x10000" /version:1.0 /entry:"DriverEntry@8" /subsystem:windows /incremental:no /pdb:"Release_Win98/имя.pdb" /map:"Release_Win98/имя.map" /machine:I386 /nodefaultlib /out:"Release_Win98\имя.sys" /libpath:"$(BASEDIR)\libfre\i386" /libpath:"$(BASEDIR)\lib\i386\free" -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d -OPT:REF -FORCE:MULTIPLE -RELEASE -FULLBUILD -MERGE:.rdata=.text -driver -align:0x20 -osversion:5.00 -subsystem:native,1.10 -driver:WDM -debug:FULL -IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096


Дебаг98:*************************************************************************
компилятор:
/nologo /G6 /Gz /MTd /W3 /GX /Zi /Oi /I "$(BASEDIR)\inc" /I "$(BASEDIR)\inc\win98" /I "$(BASEDIR)\inc\win98\inc16" /D DBG=1 /D "DEBUG" /D "_DEBUG" /D "_X86_" /D "_M_IX86" /D "i386" /D NT_UP=1 /D "WIN32" /D WIN32=100 /D _WIN32_WINNT=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D "_WIN98_SYS_DRIVER_" /FAs /Fa"Debug_Win98/" /FR"Debug_Win98/" /Fo"Debug_Win98/" /Fd"Debug_Win98/" /FD /Zel -cbstring /QIfdiv- /QIf /QI0f /GF /c

линкер:
wdm.lib ntoskrnl.lib /nologo /base:"0x10000" /version:1.0 /entry:"DriverEntry@8" /subsystem:windows /incremental:no /pdb:"Debug_Win98/имя.pdb" /map:"Debug_Win98/имя.map" /debug /machine:I386 /out:"Debug_Win98/имя.sys" /libpath:"$(BASEDIR)\lib\Win98" /libpath:"$(BASEDIR)\lib\i386\free" -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MERGE:.rdata=.text /SECTION:INIT,d /OPT:NOREF -FORCE:MULTIPLE -FULLBUILD -IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 -align:0x20 -osversion:5.00 -subsystem:native,1.10 /driver:WDM -debug:FULL

95... морально устарело уже) но тоже есть...

и наконец... при данных дебаговых настройках softIce все понимает.
Удачи Отлично
PPPS
для VS NET - все это тоже ВОЗМОЖНО!!!!!! но кое чего подругому... в новом компиляторе старые опции отключили - generation pdb как-то по другому ставится и еще что то...

PPPPS рекомендую в Heder Files добавить ntddk.h и wtypes.h - тогда броузинг нормально будет работать... по структурам.
и еще:

#ifdef _XP2600_SYS_DRIVER_
#pragma message( "******************** Windows XP2600 sys - driver ************************")

#include <ntddk.h>
#include <windef.h>

#endif //_XP2600_SYS_DRIVER_


#ifdef _NT2000_SYS_DRIVER_
#pragma message( "******************** Windows NT2000 sys - driver ************************")
//#include <warningxx.h>   //это включается в опции при использовании генерации пустого проекта
          //Wizard щт Вальтера О. (скачено по нету с его сайта
#include <ntddk.h>
#include <windef.h>

#endif //_WIN98_SYS_DRIVER_


#ifdef _WIN98_SYS_DRIVER_
#pragma message( "******************** Windows 98 sys - driver ****************************")
#include <wdm.h>
#include <windef.h>
#include "win98_add.h"
//в 98 - не определена "PsGetCurrentProcessId()" .....там много чего не определено, но есть!
/*
IO_REMOVE_LOCK_COMMON_BLOCK
IO_REMOVE_LOCK_DBG_BLOCK
IO_REMOVE_LOCK
IoInitializeRemoveLockEx
IoAcquireRemoveLockEx
IoReleaseRemoveLockEx
IoReleaseRemoveLockAndWait
*/
//но присутствует в NTOSKRNL.LIB
#endif

//#include <windows.h> //#include <winuser.h>
#include <winerror.h>

сами разберетесь)
« Последнее редактирование: 21-10-2005 11:43 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Spider84
Гость
« Ответ #12 : 26-10-2005 10:27 » 

2) Знаю как сделать это в Visual C++ .NET (в книге написано), но вот как в Visual C++ 6.0
В .NET там приводится текст некоторого файла Visual Studio Solution File (*.sln) и текст настроек проекта (*.vcproj), там так же сказано что эти настройки можно сделать интерактивно в Project->Settings но у VC++ 6.0 и .NET файлы проекта отличаются настолько.....
Не поделишься информацией ибо у меня 7.1
Заранее благодарен
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 26-10-2005 11:02 » 

скопируй мои нижеперечисленные, компилятор ругнется пару раз на недостающие опции - исправишь по месту, там все понятно будет.
ругнется на pdb for edit and continue и еще на кое какие мелочи.

ЗЫ линкер тока возьми из DDK2600!!! иначе обломится)
« Последнее редактирование: 26-10-2005 11:11 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
acc15
Гость
« Ответ #14 : 02-11-2005 19:51 » 

во накатал )))... big thx 2 Ocharik
2Spider84: тебе помогли эти настройки?? для vc6?? если нет, то перепишу из книги...
Записан
AlexANDor
Гость
« Ответ #15 : 04-11-2005 12:15 » 

Есть очень простой способ - создаешь в VS новый makefile project. Правишь настройку Build coomand Line на "cmd /c make.bat". Включаешь все свои файлы а проект (предполагается, что makefile и sources тоже присутствуют), cоздаешь make.bat:

call C:\Programs\DDK\3790.1830\bin\setenv.bat C:\Programs\DDK\3790.1830 free
d:
build -ceZ

Здесь путь к DDK на примере моей машины, вторая строка - выбор текщим диска, где работаем с проектом (если проект тоже на диске C - вместо этого командой cd снова сделать папку проекта текущей). По нажатию Build все транслируется и собирается, вывод идет в Output Window, по нажатию на ошибку переход в соответсующее место исходника - как в обычном проекте. Можно создать несолько конфигураций, каждая из которых будет вызывать свой make_xxx.bat - для разных DDK или free/checked.
« Последнее редактирование: 04-11-2005 13:01 от AlexANDor » Записан
Kife
Помогающий

by
Offline Offline

« Ответ #16 : 04-11-2005 12:52 » 

1) Бейсик я и не знал... Просто в одной книге по написанию драйверов написано следующее :
Цитата
... Редактирование, разумеется, удобнее всего выполнять в каком-нибудь редакторе интегрированной среды. Рекомендуется использовать редактор из среды Visual Studio, поскольку в нём производится динамический контроль синтаксиса и типов данных языка C. ...
2) Знаю как сделать это в Visual C++ .NET (в книге написано), но вот как в Visual C++ 6.0
В .NET там приводится текст некоторого файла Visual Studio Solution File (*.sln) и текст настроек проекта (*.vcproj), там так же сказано что эти настройки можно сделать интерактивно в Project->Settings но у VC++ 6.0 и .NET файлы проекта отличаются настолько.....
Это не Солдатова книжка случаем?! Улыбаюсь
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
acc15
Гость
« Ответ #17 : 04-11-2005 15:51 » 

В.П. Солдатов... Программирование драйверов Windows
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 05-11-2005 13:08 » 

Есть очень простой способ - создаешь в VS новый makefile project. Правишь настройку Build coomand Line на "cmd /c make.bat". Включаешь все свои файлы а проект (предполагается, что makefile и sources тоже присутствуют), cоздаешь make.bat:

call C:\Programs\DDK\3790.1830\bin\setenv.bat C:\Programs\DDK\3790.1830 free
d:
build -ceZ

Здесь путь к DDK на примере моей машины, вторая строка - выбор текщим диска, где работаем с проектом (если проект тоже на диске C - вместо этого командой cd снова сделать папку проекта текущей). По нажатию Build все транслируется и собирается, вывод идет в Output Window, по нажатию на ошибку переход в соответсующее место исходника - как в обычном проекте. Можно создать несолько конфигураций, каждая из которых будет вызывать свой make_xxx.bat - для разных DDK или free/checked.

А смысл, если удобнее все настройки в родном окне студии менять/править/просмативать?)) хош либу подклчить - пожалте... хош опции компилятора галочкой поставить- зарадибога...) хош ассемблер посмотреть - ставь галку и всего делов)
тем паче, что мейк-файл из DDK занимает под сто кило, и чего в нем накрутили - одному богу известно... разве что под MIPS/ALFA и прочие процы драйвер генерить можно... тока оно вам надо?))
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Storage Device
Гость
« Ответ #19 : 24-11-2005 22:34 » 

по поводу компиляции дров:
компилирую я это дело все прямо в VC6. единственное что стоит сделать - обновить версию компилятора... (иначе XPшные драйвера вообще не скомпилятся - там кое какие опции новые нужны)
как обновить версию компилятора? есть vc6 есть к нему sp5 (впрочем он так просто на vc мой не ставится). vc компилит через cl версии 12.0.8804.0, а линкует link.exe версии 6.0.8447.0. никакого ml у меня нету. Что мне делать, как мне быть?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 25-11-2005 11:21 » new

поначалу я просто нагло обновил его прямо по месту
MSVC\VC98\Bin\
кстати - действительно link.exe (ml.exe - это я обшибся)..
самый ломовой путь -сохранить на всяк случай всю папочку в резерве... и по месту переписать из DDK - компилятор, линкер и ему еще библиотеки нужны какие то... отсюда DDK\DDKXP_2600SP1\bin\x86\
заодно и RC новый и так далее...что там есть - все новее будет.
так я поначалу делал... потом что то у меня старые проекты с новым компилятором заглючили...

теперь - у меня все равно Драйвер-студия к VS.6 подцепилась... там есть менющка DDK Build Setting... в ней указываю путь к ДДК C:\DDK\DDKXP_2600SP1
и ставлю галки Enable....  и WinXP. - в этом случае компиляция производится ДДКовским компилятором и линкером...
Впринципе - в этой менюшке просто переменные окружения меняются... я подозреваю что CPP, LINK32 или _cl_ и _link_.
точно не знаю - не копался, думаю их можно прямо в переменных окружения менять...
но это однако ХЕЛП читать надо)
если не лень будет копаться - уверен там есть... если найдется - поделитесь опытом, пожалуйста)
Удачи!
PS а возможно и просто переменная Patch правится так чтоб первым путем стоял тот что до ДДК компилятора/линкера, папки бин...
« Последнее редактирование: 25-11-2005 11:31 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines