PDA

View Full Version : BUILD di Microsoft


71104
07-01-2006, 20:02
ho un problema col programma BUILD di Microsoft (quello fornito col DDK): sto cercando di scrivere un programma simile a Daemon Tools, solo che lavora con hard disk virtuali anziché unità CD virtuali; ho la seguente struttura di directories:


- filedisk
- km
- class
- port
- ui


"km" sta per "kernel mode" (lì ci scrivo i due drivers usati dal programma, class e port), e "ui" ovviamente sta per "user mode", e lì ci metto il programmetto fesso user mode che gestisce i drivers.

ora il problema: se faccio BUILD dall'environment per Windows 2000, free build a 32 bit, il programma parte e compila quasi tutto, perché la cartella class non se la fila di pezza :confused: :confused: :confused:

eppure il file dirs l'ho scritto bene:

DIRS=class\
port

questo è tutto il contenuto del file dirs che si trova nella cartella km; ho anche provato a scambiare class e port, così:

DIRS=port\
class

e non cambia nulla, la directory che BUILD non compila sempre class rimane :|

ho anche provato:

DIRS=port class

e

DIRS=class port

MA NIENTE!!! :cry: :cry:

qualcuno mi sa aiutare?? :help:

edit: l'unico dannato modo per compilare il class driver è quello di richiamare BUILD da dentro la cartella class, ma da qualsiasi altra cartella (km o filedisk) non gliene importa un fico secco :muro: :muro:

edit2: se serve, questo è il file sources presente in class:

TARGETNAME=filediskclass
TARGETPATH=obj

TARGETTYPE=DRIVER
DRIVERTYPE=WDM

SOURCES=main.c

questo invece è il makefile, assolutamente identico a tutti gli altri:

!INCLUDE $(NTMAKEENV)\makefile.def

e questo quello che per ora è main.c:

#include <wdm.h>

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) {
return 0;
}

NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject) {
return 0;
}

71104
08-01-2006, 10:17
up :help:

71104
08-01-2006, 15:25
up :cry:

mi pare strano che nessuno ne sappia niente... :|

71104
09-01-2006, 16:22
up! niente, eh? :help:

jappilas
09-01-2006, 16:47
stando a quanto scritto qui (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/DevTest_g/hh/DevTest_g/Build_Use_ddeab0c0-cbdb-47f7-a002-f02c52477a42.xml.asp) mi viene da pensare che manchi qualcosa ...
The Build utility searches the dirs file for the macros DIRS and OPTIONAL_DIRS. It then recurses to each directory listed in the dirs file, searching for another dirs file or a sources file. Each additional dirs file indicates another directory to recurse into. Each sources file indicates a job to be built.

If sources files are found, the Build utility searches for the macros, SOURCES, INCLUDES, TARGETNAME, and TARGETPATH.
hai provato a mettere anche il file sources? ;)

71104
09-01-2006, 18:38
come no, l'ho anche quotato (guarda la seconda metà del post iniziale) :mc:

edit: ci manca la macro INCLUDES, ma perché due sources IDENTICI (tranne per la macro TARGETNAME) in due directories diverse provocano comportamenti diversi? la build in class non ci entra nemmeno, nel senso che nella console non mi scrive neanche il messaggio in cui dice che sta entrando (mentre ovviamente con port lo fa)... :mc:

jappilas
10-01-2006, 11:59
come no, l'ho anche quotato (guarda la seconda metà del post iniziale) :mc:
ops ehm schiusmi :O

ti prego non arrabbiarti ... siccome di problematiche "pratiche" come queste per ora so poco o nulla, quando si pone un problema cerco di esplorare la possibile ragione, per imparare io per primo... ma se non c' entra nulla o non è così, che build esplori ricorsivamente le sottodirectories e (forse) si aspetti un file specifico con le direttive, in ognuna che corrispondesse a un build target separato, allora non so... se poi oltre che ignorante sono pure stordito... :fagiano: :cry: