だから...私はNT DDK 7.1.0のターンキービルド環境を使用してまとめているカーネルモードコンポーネントとユーザーモードコンポーネントを持っています。カーネル コンポーネントはすべて .c/.h/.rc ファイルです。ユーザー モード コンポーネントは .cpp/.c/.h/.rc ファイルです。
ユーザーモードコンポーネントのファイルを次のように変更できることがわかったので、最初は両方にbuildを使用するのが最も簡単に思えました。./sources
TARGETNAME = MyUserModeComponent
TARGETTYPE = PROGRAM
UMTYPE = windows
UMENTRY = winmain
USE_MSVCRT = 1
#include <string>
それは問題を引き起こさないようだったので、 (または<memory>
、または何でも)しようとするまで、私は喜んでいました。
エラー C1083: インクルード ファイルを開けません: 'string': そのようなファイルまたはディレクトリはありません
それでも、C++ 言語のセマンティクスを使用してユーザー モード部分をコンパイルしています。しかし、標準インクルードを機能させるにはどうすればよいでしょうか?
技術的には、ユーザー モード部分にDDKビルドツールを使用する必要はありません。ビジュアル スタジオ ソリューションを作成できました。__stdcall
DDKがデフォルトではなく代わりに使用するという事実のように、他の煩わしさにぶつかったので、私は少し警戒してい__cdecl
ます...そしてこれをオーバーライドするプラグマまたはコンパイラスイッチはありません。ソースがあると仮定すると、文字通り、関心のある各宣言に移動して変更する必要があります。:-/
これは、「できるからといって、DDK を使用してユーザー モード アプリをビルドする必要があるわけではありません。これがドラゴンです。」 したがって、私の質問は、この特定の技術的なハードルについてだけではなく、カーネル コンポーネントが純粋な C であるという理由だけで、DDK ツールを使用して C++ ユーザー モード コンポーネントを構築するという考えを放棄すべきかどうかということです。