0

私は Windows フィルタリング プラットフォームの初心者です。コードをコンパイルしようとしたところ、ヘッダー ファイル "fwptypes.h" に 13 個のエラーがありました。これを解決する方法がわかりません..任意の提案..ここにエラーIMGがあります

4

2 に答える 2

2

最初のエラー (プリコンパイル済みヘッダー) を除去するには、次の 3 つの方法があります。

  1. プロジェクト設定を「プリコンパイル済みヘッダーを使用しない」に変更します (プロジェクトを右クリック -> ポップアップ メニューで「プロパティ」を選択 -> 構成プロパティ -> C/C++ -> プリコンパイル済みヘッダー -> プリコンパイル済みヘッダー)。

または 2. デモ コードを cpp ファイルではなくヘッダー ファイルにコピーします。

または 3. デモ コードの前に「stdafx.h」を追加します。

他のコンパイル エラーについては、これを試してください (この解決策はhttp://social.msdn.microsoft.com/Forums/en-US/wfp/thread/8fd93a3d-a794-4233-9ff7-09b89eed6b1fから来ています、私はテストしましたが、動作します) :

ヘッダー ファイル (余分な行スペース) にバグがあります。コピーを直接変更できます。

FwpTypes.h @ 行 275:

#define FWP_ACTION_BLOCK \
   (0x00000001 | FWP_ACTION_FLAG_TERMINATING)
 #define FWP_ACTION_PERMIT \
   (0x00000002 | FWP_ACTION_FLAG_TERMINATING)
#define FWP_ACTION_CALLOUT_TERMINATING \
   (0x00000003 | FWP_ACTION_FLAG_CALLOUT | FWP_ACTION_FLAG_TERMINATING)
#define FWP_ACTION_CALLOUT_INSPECTION \
   (0x00000004 | FWP_ACTION_FLAG_CALLOUT | FWP_ACTION_FLAG_NON_TERMINATING)
#define FWP_ACTION_CALLOUT_UNKNOWN \
   (0x00000005 | FWP_ACTION_FLAG_CALLOUT)
#define FWP_ACTION_CONTINUE \
   (0x00000006 | FWP_ACTION_FLAG_NON_TERMINATING)
#define FWP_ACTION_NONE \
   (0x00000007)
#define FWP_ACTION_NONE_NO_MATCH \
   (0x00000008)

FwpTypes.h @ 行 343

#define FWP_FILTER_ENUM_VALID_FLAGS \
   (FWP_FILTER_ENUM_FLAG_BEST_TERMINATING_MATCH | \
    FWP_FILTER_ENUM_FLAG_SORTED)

IkeTypes.h @ 行 367

#define IKEEXT_ERROR_CODE_COUNT  \
   (ERROR_IPSEC_IKE_NEG_STATUS_END - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN)
于 2012-06-11T08:19:31.207 に答える
0

WinDivert オープン ソースの WFP コールアウト ドライバーを使用できます。

WinDivert は基本的に、パケットを基盤となる Windows Filtering Platform (WFP) パケット インジェクション関数に渡します。

詳細については、このリンクをご覧ください.. http://reqrypt.org/windivert.html

于 2013-10-13T16:15:09.593 に答える