Уроки Iczelion'а

       

Компилирование VxD


Процесс компиляции такой же, как и при компиляции обычного win32-приложения. Вы натравливаете ml.exe на asm-исходник, а затем линкуете объектник с помощью link.exe. Есть только отличия в параметрах, передаваемых ml.exe и link.exe.

ml-coff -c -Cx -DMASM6 -DBLD_COFF -DIS_32 firstvxd.asm

-coff - указывает объектный формат COFF
-c - только ассемблирование. Вызов линкера не производится, так как мы будем вызывать link.exe вручную.
-Cx - сохранять регистр публичных, внешних имен.
-D - определяет текстовый макрос. Hапример, -DBLD_COFF определяет текстовый макрос BLD_COFF, который будет использоваться в ассемблировании. Если вы знакомы с c-программированием, это идентично:

#define BLD_COFF

#define IS_32 #define MASM6

link -vxd -def:firstvxd.def firstvxd.obj

-vxd указывает, что мы хотим создать VxD из объектного файла.
-def:<.DEF файл> задает имя файла определения модуля VxD.

Я считаю более правильным использовать make-файлы, но вы также можете создать bat-файл, чтобы автоматизировать компиляцию. Вот мой make-файл.

NAME=firstvxd

$(NAME).vxd:$(NAME).obj link -vxd -def:$(NAME).def $(NAME).obj

$(NAME).obj:$(NAME).asm ml -coff -c -Cx -DMASM6 -DBLD_COFF -DIS_32 $(NAME).asm

[C] Iczelion, пер. Aquila.





Содержание раздела