1

WDK サンプルから DbgPrint または KdPrint 関数を呼び出す必要がありますsrc\print\monitors\localmon

指示を手伝ってください

私はちょうど追加しました

#include <ntddk.h>localmon.c ファイル内

DbgPrint("Some message");同じファイルに

そしてコンパイル時に次のエラーが発生しました:

1>errors in directory c:\winddk\7600.16385.1\src\print\new2\monitors\localmon
1>c:\winddk\7600.16385.1\inc\api\ntdef.h(149) : error C2220: warning treated as
error - no 'object' file generated
1>c:\winddk\7600.16385.1\inc\api\ntdef.h(614) : error C2011: '_PROCESSOR_NUMBER'
 : 'struct' type redefinition
1>c:\winddk\7600.16385.1\inc\api\ntdef.h(625) : error C2011: '_GROUP_AFFINITY' :
 'struct' type redefinition
1>c:\winddk\7600.16385.1\inc\api\ntdef.h(882) : error C2011: '_FLOAT128' : 'stru
ct' type redefinition
1>c:\winddk\7600.16385.1\inc\api\ntdef.h(933) : error C2011: '_LARGE_INTEGER' :
'union' type redefinition
1>c:\winddk\7600.16385.1\inc\api\ntdef.h(951) : error C2011: '_ULARGE_INTEGER' :
 'union' type redefinition
1>c:\winddk\7600.16385.1\inc\api\ntdef.h(973) : error C2011: '_LUID' : 'struct'
type redefinition

私が間違っているのは何ですか?

ありがとう

4

1 に答える 1

3

これはユーザー モード コードです。OutputDebugString代わりに使用し、まったく含めないでくださいntddk.h。必要に応じて、OutputDebugString対応するDbgPrint.


どうしても使わなければならない場合DbgPrintは、もちろん からも入手できますntdll.dll。そのため、そこに到達してそこからインポートできます (プロトタイプwdm.hは WDK にあります)。しかし、私はOutputDebugStringユーザーモードコードの方が好きです。

于 2012-05-29T12:43:52.170 に答える