La compilazione dei sorgenti

Compilazione del VxD

Per poter compilare il device driver è necessario disporre del Windows 95 DDK (Drivers Development Kit).

In esso sono disponibili tutta una serie di librerie e di file header che dovranno essere inclusi nei sorgenti del driver scritto per un particolare dispositivo. Da notare che la sua installazione presuppone a sua volta la presenza sul sistema del SDK (Software Development Kit).

Infine è indispensabile un macro assemblatore ed un compilatore C (nel caso in esame il Visual C++ 6.0) che sia in grado di produrre codice a 32 bit. Il macro assemblatore è reperibile nel CD-ROM del DDK nella directory Masm611c: siccome però non viene automaticamente installato con il DDK è necessario copiarlo manualmente, per esempio nella directory Bin del DDK.

Partendo dall’ipotesi di avere installato sul sistema tutti i vari tools di sviluppo elencati è possibile compilare il VxD.

Prima di procedere alla compilazione vera e propria è necessario configurare l’ambiente.

Per fare ciò seguire i seguenti passi :

In questo modo si specifica che il codice è a 32 bit e che si desidera sviluppare un driver di rete.

Adesso portarsi nella directory in cui sono contenuti i vari sorgenti del VxD e dare il comando nmake (utility a corredo del Visual C++) senza nessun parametro. In questo modo si avvierà la compilazione del driver e nella direcory debug verrà generato il file vpacket.vxd.

Note:

  1. Ignorare eventuali messaggi di warning dati dal linker
  2. In una successiva compilazione non si è riusciti ad ottenere esattamente il prodotto lanciando il solo NMAKE: la compilazione fallisce nel momento in cui viene lanciato il programma ADRC2VXD, che aggiunge le informazioni di copyright contenute nel file .RC (compilato correttamente in .RES). In virtù di questo problema:

Compilazione della DLL

Per la compilazione della DLL abbiamo usato il Visual C++ 6.0, ed i sorgenti sono contenuti nella directory DLL del dischetto fornito. I file importanti sono i seguenti due :

Il processo di compilazione ci fornisce i file packet95.dll e packet95.lib. Il primo è necessario al tempo di esecuzione dell’applicazione che fa uso della DLL mentre il secondo al tempo di compilazione. Da notare che è presente anche una directory chiamata INC in cui sono contenuti gli header file usati sia della packet95 che dall’applicazione di esempio.

Compilazione dell’applicazione

Per la compilazione dell’applicazione basta semplicemente disporre di un compilatore C++ e impostare le opzioni del linker in modo da includere il file di libreria packet95.lib .