2011-02-11 10 views
0

複数のデバイスタイプを扱うWindowsドライバを継承しました。私はそれを2つの分離したドライバに分割する必要があります。それぞれのデバイスにコードがあり、それに共通するコードがあります。そのため、deviceA、deviceB、commonの3つのディレクトリを作成しました。少量の共有コードで2つのデバイスドライバを構築する方法

私は2つの理由のためにこれをやった:ちょうどこの方法をソース 2. build.exeは、「ソース」ファイルを必要とし、私は別のファイルを持っていることができなかったドライバーを分離するために、より明確なようだ 1同じディレクトリにある2つのドライバの場合

Visual Studioを使用してddkbuild.batを呼び出すと、ビルドに失敗します。

これは私が試みている方法で行うことができますか?より良い/より賢い方法がありますか?

ソースを各デバイスのサブディレクトリに変更しました。私はよく分からない共通ファイルについて何をするべきか

Visual Studio 2008を使用して、ddkbuild、DDK 7600.16385.0。

+0

共通ディレクトリのソースにはどうしましたか?あなたのビルドはどのように失敗しましたか?これがうまくいかない理由はたくさんあります。何らかの答えを提供するためには、より具体的な情報が必要です。 – Michael

+0

私はcommon/sources *のために(まだ)何もしていません。私のdriverUSBはまったくコンパイルされませんでした。私は現在、driverUSBはコンパイルしますが、一般的なファイルに移動したために明らかにリンクされません。だから、今私は私の質問があると思う:何**私は*共通/ソース*のためにする必要がありますか? * sources *はbuild.exeを使用していることを意味します。これはddkbuild.batを暗示しています。 – halm

答えて

1

この問題を解決するには、静的ライブラリを使用してください。 DDKコマンドプロンプトを開いてbuild -C -Zと入力するとどうなりますか?

+0

応答をありがとう。 「悲惨に失敗する」とはおそらく役に立たなかった(私は6000以上のエラーがあり、不満を感じていた)。コンパイルエラーは主に私のエラーであることが判明しました。1 - ヘッダーを3つに分けました(一般的なAとB、AとBは共通です)。しかし、ソースファイルを変更してそれぞれのヘッダー2 - 私はVC++にnmakeへのインクルードパスの追加引数については言及していませんでした.3 - Web上のどこかにbuild.exeがパス名をスペース( "Documents and Settings")を持つのが好きでないことがわかりました。 Paulに提案されている一般的なスタティックライブラリを使って作業する。 – halm

+0

もう一度おねがいします...私はまだ新しいドライバをインストールしてテストしていませんが、どちらもうまくいきます。あなたが提案したように、私は共有コード用の静的なlibを作成し、個々のドライバをそれにリンクさせました。 – halm

関連する問題