Нашел книгу "G.Nebbett.Windows 2000 Native API Reference" Нашел примеры из книги Все примеры компилятся из makefile через nmake makefile Код (Text): !ifdef debug cdebug = -Od -Z7 ldebug = -debug:full -debugtype:cv !else cdebug = -Ox ldebug = -release !endif CPPFLAGS = -c -W3 -GX -MD -nologo $(cdebug) -D_X86_ -DSTRICT -DWIN32_LEAN_AND_MEAN lflags = -incremental:no -pdb:none -nologo $(ldebug) llibs = ntdll.lib kernel32.lib advapi32.lib imagehlp.lib !ifdef dll $(target).dll: $(target).obj ; link $(lflags) $(llibs) $** -dll !else $(target).exe: $(target).obj ; link $(lflags) $(llibs) $** !endif Помогите перевести этот make в обычные строки типа ML.EXE /Cp /nologo ... LINK.EXE /SUBSYSTEM:WINDOWS /DEBUG ...
n0name ваша правда. ----> makefile Код (Text): !ifdef debug cdebug = -Od -Z7 ldebug = -debug:full -debugtype:cv !else cdebug = -Ox ldebug = -release !endif CPPFLAGS = -c -W3 -GX -MD -nologo $(cdebug) -D_X86_ -DSTRICT -DWIN32_LEAN_AND_MEAN lflags = -incremental:no -pdb:none -nologo $(ldebug) llibs = ntdll.lib kernel32.lib advapi32.lib imagehlp.lib !ifdef dll $(target).dll: $(target).obj ; link $(lflags) $(llibs) $** -dll !else $(target).exe: $(target).obj ; link $(lflags) $(llibs) $** !endif -----> makeall.bat Код (Text): @echo off nmake -nologo target=ex01_1 dll=1 | find /v "C6311" nmake -nologo target=ex01_2 | find /v "C6311" nmake -nologo target=ex01_3 | find /v "C6311" nmake -nologo target=ex01_4 | find /v "C6311" nmake -nologo target=ex02_1 | find /v "C6311" nmake -nologo target=ex06_1 | find /v "C6311" nmake -nologo target=ex06_2 | find /v "C6311" nmake -nologo target=ex06_3 dll=1 | find /v "C6311" nmake -nologo target=ex08_1 | find /v "C6311" nmake -nologo target=ex11_1 | find /v "C6311" nmake -nologo target=ex12_1 | find /v "C6311" nmake -nologo target=ex13_1 | find /v "C6311" nmake -nologo target=ex20_4 | find /v "C6311" nmake -nologo target=ex21_1 | find /v "C6311" nmake -nologo target=ex21_2 | find /v "C6311" Теперь точно все приведу пример одной небольшой его проги -----> ex01_4.cpp Код (Text): #include "ntdll.h" #include "windbgkd.h" #include <stdio.h> BOOL EnablePrivilege(PCSTR name) { TOKEN_PRIVILEGES priv = {1, {0, 0, SE_PRIVILEGE_ENABLED}}; LookupPrivilegeValue(0, name, &priv.Privileges[0].Luid); HANDLE hToken; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken); AdjustTokenPrivileges(hToken, FALSE, &priv, sizeof priv, 0, 0); BOOL rv = GetLastError() == ERROR_SUCCESS; CloseHandle(hToken); return rv; } int main() { DBGKD_GET_INTERNAL_BREAKPOINT bp[20]; ULONG n; EnablePrivilege(SE_DEBUG_NAME); NT::ZwSystemDebugControl(NT::DebugGetTraceInformation, 0, 0, bp, sizeof bp, &n); for (int i = 0; i * sizeof (DBGKD_GET_INTERNAL_BREAKPOINT) < n; i++) printf("%lx %lx %ld %ld %ld %ld %ld\n", bp[i].BreakpointAddress, bp[i].Flags, bp[i].Calls, bp[i].MaxCallsPerPeriod, bp[i].MinInstructions, bp[i].MaxInstructions, bp[i].TotalInstructions); return 0; } Помогите перевести этот make в обычные строки типа ML.EXE /Cp /nologo ... LINK.EXE /SUBSYSTEM:WINDOWS /DEBUG ...
Вот компилируемый проект (VS6.0). В настройках студии Tools -> Options -> Directories должны быть прописаны пути к DDK хидерам и либам. У меня так. Include Files X:\DDK\inc\w2k X:\DDK\inc\ddk\w2k Library Files X:\DDK\lib\w2k\i386
Four-F - Tools -> Options -> Directories ... прописаны как сказано - Все сделал как в Native.rar, и вот Код (Text): Compiling... SystemBasicInformation.cpp d:\winxpddk\inc\ddk\wxp\ntdef.h(1320) : error C2015: too many characters in constant d:\winxpddk\inc\ddk\wxp\ntdef.h(1320) : error C2006: #include expected a filename, found 'constant' d:\winxpddk\inc\ddk\wxp\ntddk.h(33) : fatal error C1083: Cannot open include file: 'bugcodes.h': No such file or directory Error executing cl.exe. SystemBasicInformation.exe - 3 error(s), 0 warning(s) причем fatal error C1083: Cannot open include file: 'bugcodes.h': No such file or directory - файл на месте. Чего не так?
Это из-за того что у тебя нет второго пути к хидерам или они не в том порядке. В твоем случае Tools -> Options -> Directories -> Include Files должно быть так (порядок важен): d:\winxpddk\inc\wxp d:\winxpddk\inc\ddk\wxp
статические пути это неесть хорошо, я налабался набивать опции и собирать один и тот же каркас драйвера в любой студии без сторонних средств с ДДКXP, 2003, ВДК6.0 буквально за пару-тройку минут , если кому интересно мог бы попытаться описать это в статейке или видео можно сделать