Иногда грешу написанием простеньких WDM, до сих пор обходился компиляцией и сборкой из DDK вского энвирометта... Но похоже что придется занятся этим делом более основательно (WDM), так что захотелось немного больше комфорта.. Да, сам я из делфийских краев, следовательно студию особо вниманием не жаловал..
Так вот, захотелось использовать студию как минумум как редактор.. Ну, и средство навигации по идентификаторам, да и удобного перехода на строку с ошибочным синтаксисом..
Создал make-file проект, как Build command line прописал тот батник, что делает сборку...
Относительно навигации по идентификаторам — то, что правой кнопочкой мши в окне редактора — Go to дефинишин, референс — относительно быстро разобрался — в сеттинг/женерал/Browse Info file name прикрутил соответсвующий *.bsc...
Но вот чтобы по клике на строке с сообщением об ошибке компиляции в окне с логом билда прейти в соответсующий файл — с этим облом..
Дело в том, что сам проект я сохранил в поддиректории той директориии, где лежат сорцы (чтобы не загромождать последнюю)...
Так вот, к примеру, при клике на строчке вида
mntsys.c(56) : error C2054: expected '(' to follow 'lPoint'
среда упорно ищет файл рядом с файлом проекта, а не поддиректорией више, хотя в самих пропертях файла (Persist as) четко записано ..\mntsys.c, да и собствено File Name полный путь показывает корректно...
Как сие вылечить? Конечног, я понимаю, что могу файл проекта сохранить в папке с исходниками, и проблема снимется автоматически, но... Все же как лечить? Да, и где можно почитать что там в dsp править, если вдруг захочу на ходу с одного вида проекта на другой перебросить — как я понял, от вида проекта немного меняется набор опций в сеттинг (вообще то самоцель не изменение вида проекта, а добавить — убрать некоторіе доступные опции в setting)...
Здравствуйте, Ihor Osovyak, Вы писали:
IO>Так вот, к примеру, при клике на строчке вида IO> mntsys.c(56) : error C2054: expected '(' to follow 'lPoint' IO>среда упорно ищет файл рядом с файлом проекта, а не поддиректорией више
Хм, а зачем она его там ищет, если компилятор выдает ошибки с полным путем к файлу? Или Вы как-то заставили его выдавать без пути?
Сам сижу в VS6 — ошибки выдаются с полным путем, файлы открываются
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Хм, а зачем она его там ищет, если компилятор выдает ошибки с полным путем к файлу?
Хотя нет, пардон, для текущего каталога выдает только имя, без пути.
У меня dsp/dsw всегда лежат там же, где и исходники, а вот sources/makefile — иногда там же, а иногда и в подкаталогах. build.exe нужные файлы находить умеет, а студия, видать, не напрягается.
А какие проблемы положить dsp/dsw вместе с исходниками?
ЕМ>Хм, а зачем она его там ищет, если компилятор выдает ошибки с полным путем к файлу? Или Вы как-то заставили его выдавать без пути?
Да особо не заставлял, на момент запуска билда директория с исходниками текущая..
структура каталогов
...prj_root\drv\DSP_ForEd
в prj_root батник для билда, в drv — исходники, в DSP_ForEd — проект в смысле студио..
батник
del drv\*.log
call D:\WINDDK\2600\bin\setenv.bat D:\WINDDK\2600 chk
cd \!PRJ\....prj_root\drv
call build
cd \!PRJ\....prj_root
copy drv\objchk\i386\*.sys ..\bin
то есть ничего осообеного, если только не учитывать наличия знака восклицания в полном пути к каталогу проекта..
ЕМ>Сам сижу в VS6 — ошибки выдаются с полным путем, файлы открываются
если не влом, в двух словах — как делался "проект" в студио (я делал на основании make-file project)...
Здравствуйте, Ihor Osovyak, Вы писали:
IO>как делался "проект" в студио (я делал на основании make-file project)...
Дык, обыкновенно — создается проект application или DLL, потом все настраивается руками (вызовы по stdcall, точка входа, /release или subsystem:native и т.п.), плюс нужно определить макросы для окружения (можно посмотреть, как их определяет build.exe при вызове компилятора, а можно использовать SrcToDsp из DriverStudio).
Если что-то не получается — смотреть, какие ключи передаются компилятору/линкеру, и сравнивать с листингом от build.exe.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Дык, обыкновенно — создается проект application или DLL, потом все настраивается руками (вызовы по stdcall, точка входа, /release или subsystem:native и т.п.), плюс нужно определить макросы для окружения (можно посмотреть, как их определяет build.exe при вызове компилятора, а можно использовать SrcToDsp из DriverStudio).
ЕМ>Если что-то не получается — смотреть, какие ключи передаются компилятору/линкеру, и сравнивать с листингом от build.exe.