目次

なにもの?

WDK,Windows Driver Kitはドライバ開発のための環境として無償提供されている。 同梱されてる.libには advapi32やら user32もあるので、普通の Win32 Appをビルドすることも可能。 更に1セットでx-compile環境にもなってるのがイイ。2k8x64で使ったものを2k3IPFでも欲しくなったりするので、Visual Stuido(=VC++ or VC#)とWDKを場合に応じて使いわけてます。

inc めも

  • 7600.16385.0には psapi.libはあっても、inc配下に psapi.hが無いので、この辺(例えばGetModuleBaseName?)を使う分のPrototypeは自前で用意するか、Microsoft Windows SDKを入れておいて、これに含まれる psapi.hを見に行かせればよい。

link.exeめも

  • kernel32は勝手に見にいくようだが、それいがい(user32.dllとかadvapi32)はリンク時に明示しないとだめぽ。

てんぷれ

今はこうなってます。随時更新。

Makefile

WDKINC=/I $(BASEDIR)\inc\api /I $(BASEDIR)\inc\crt /I $(BASEDIR)\inc\api\crt\stl60
MSSDKINC=/I "C:\Program Files\Microsoft SDKs\Windows\v5.0\Include"
INCLUDE=$(WDKINC) $(MSSDKINC)
LIBS=user32.lib advapi32.lib psapi.lib
#LIB=/LIBPATH:$(BASEDIR)\lib\wlh\ia64 /LIBPATH:$(BASEDIR)\lib\Crt\ia64 $(LIBS)
LIB=/LIBPATH:$(BASEDIR)\lib\wnet\i386 /LIBPATH:$(BASEDIR)\lib\Crt\i386 $(LIBS)
#LIB=/LIBPATH:$(BASEDIR)\lib\wnet\amd64 /LIBPATH:$(BASEDIR)\lib\Crt\amd64 $(LIBS)
CPPFLAGS=/nologo /W4 /D_WIN32_WINNT=0x600 /Zi /c
LINKFLAGS=/nologo /DEBUG
NAME=skel
SRC=$(NAME).cpp
OBJ=$(NAME).obj
EXE=$(NAME).exe
all: $(SRC)
	cl $(CPPFLAGS) /EHsc $(INCLUDE) $(SRC)
	link $(LINKFLAGS) /out:$(EXE) $(OBJ) $(LIB)
clean:
	del /f $(EXE) $(OBJ) *.pdb *.ilk

skel

100行以内で済むから1ファイルで終る場合の、かなりいい加減なテストコード用skelton
#include    <Windows.h>
#include    <tchar.h>

#define     dEBUG(x)  x

void MitoGetLastError(DWORD errId, std::string who) {
    LPVOID lpMsgBuf;
    DWORD n = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
            FORMAT_MESSAGE_MAX_WIDTH_MASK | FORMAT_MESSAGE_FROM_SYSTEM, 
            NULL, errId,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
            //MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
            (LPTSTR)&lpMsgBuf, 0, NULL);
    if ( n > 0 ) {
        printf("%s() failed : %s(%u)", 
            who.c_str(), lpMsgBuf, errId);
    } else 
        printf("FormatMessage() : %u\n", GetLastError());
}

int _tmain(int argc, _TCHAR* argv[]) {

    return 0;
}

参考文献

  • WDK Home
    • 配布場所。自分もVisual xxxより先にこっちに会ってたら、Windows行ってたかも。いや、そもそもGCCさわった最初の頃、Visual xxx無かったかw
  • Japan WDK Support Blog
    • MSKKのWDKグループのブログ。内容は更新される度に見る価値ある気がするぐらい、丁寧に書かれてます。前の会社でもこんなのあった気がする。

Last-modified: 2009-12-23 02:39:54