や、デバイスドライバのデバッグが出来ないから、IDE上に構築しても意味ないじゃん。って突っ込みは十分判りますよ。
でもですね、デバッグだけがIDEの本質じゃない訳で。
ソースの管理は一目でわかるし、コードは色付き表示だし、慣れた環境じゃないですか?
それに、実際試したら、意外と簡単だったんですよ?設定するの。
発端
なんでVisual Studio 2005上で構築してみようかな?と思ったかと言うと、以下の文面を見たからです。
Visual Studio をエディタおよび統合開発環境として使用する以外に、Visual Studio から Hollis Technology Solutions 製の Ddkbuild などのバッチ コマンド ファイルを使用してビルド ユーティリティを呼び出すことができます。
http://www.microsoft.com/japan/whdc/devtools/tools/buildenv.mspx
これを見て、「え?Visual Studio上でビルドできるの?」って思った訳です。
で、他の人は、どうやってんのかな?と思って、早速ぐーぐる。
Ddkbuild の検索結果のうち 日本語のページ 約 10 件中 1 - 8 件目 (0.18 秒)
少なっ!
…まぁ、普通のバイナリャー(バイナリアンな人々)は、んな軟弱な事はしませんわな。
しょうがないので、ddkbuildなるものをゲット。
MSのリンク紹介には、2件あります。
- DdkBuild
http://www.hollistech.com/Resources/ddkbuild/ddkbuild.htm - Downloads:DDKBUILD -- Visual Studio .CMD Procedure For Building Drivers
http://www.osronline.com/article.cfm?article=43
ゲットして開いてみると唖然。中は、ddkbuild.bat 一本だけ。
何を、どうすれば良いか?
バッチファイルとサイト上の説明を機械翻訳に掛けながら 眺めてみると、要するに、以下のようにして使えば良いようです。
- Visual Studioのビルドイベントに、ddkbuild.bat とオプション引数を少々渡してやれば良い。
- オプション引数には、使用するDDKとターゲットの種類を掛け合わせたものと、リリース/デバッグの指定等を行えば良い。
- インストールしたDDKの場所を、DDKの種類に合わせて環境引数をセットし呼び出せば、後は適当にビルドしてくれる。
検証した環境
以降、実際に試したやり方を、簡単に述べます。
テストした環境は以下の通り。
- Visual Studio 2005 SP1
- Windows Server 2003 Service Pack 1 DDK
- http://www.hollistech.com/Resources/ddkbuild/ddkbuild.htm の ddkbuild.bat
- ターゲットは、VirtualPC上のWindows
VS2005でビルドまで
プロジェクトの作成から開始します。
プロジェクトは、Visual C++ → 全般 → メイクファイル プロジェクト です。
DDK1 (C)wacky
ここでは、設定タブが幾つか ありますので、以下のように設定します。
DDK3 (C)wacky
設定で注意すべきなのは、以下の項目です。
ビルドコマンドライン | ddkbuild -WNET checked . |
リビルドコマンドライン | ddkbuild -WNET checked . -cZ |
ここでは、ddkbuild.batの第1引数に"-WNET"を与えていますが、使うDDKとターゲットの組み合わせ如何によって変える必要があります。
第2引数では、デバッグするので"checked"を与えていますが、リリースだと"free"のようですね。
とりあえず、プロジェクトを作成した直後です。
DDK5 (C)wacky
それでは、早速ソースを引っ張ってきて、ビルドしましょう。
今回は、DDKのgeneralサンプルを使います。以下のフォルダのファイルを丸ごと…
DDK6 (C)wacky
↓プロジェクトフォルダにコピーします。
DDK7 (C)wacky
あ、注意点として、ビルド時、C:\WINDDK\3790.1830\src\general\portio\gpioctl.h がビルドに必要ですので、忘れずにコピーして下さい。
(私はビルドに失敗して、ようやく気付いた)
次に、ソリューションエクスプローラから右クリックで、追加 → 既存の項目 を選び…。
DDK8 (C)wacky
↓入れます。
DDK10 (C)wacky
次に、ddkbuild.batを持ってきます。
DDK11 (C)wacky
次に、ddkbuild.batを開き、先頭行に 環境変数 WNETBASE に、DDKのルート位置を教えてあげます。
set WNETBASE=C:\WINDDK\3790.1830 @echo off ...
閉じて、ビルドすると、以下のようにビルドできるハズです。
DDK12 (C)wacky
ほら、すっごく簡単でしょ?