私は Windows フィルタリング プラットフォームの初心者です。コードをコンパイルしようとしたところ、ヘッダー ファイル "fwptypes.h" に 13 個のエラーがありました。これを解決する方法がわかりません..任意の提案..ここにエラーIMGがあります
2 に答える
最初のエラー (プリコンパイル済みヘッダー) を除去するには、次の 3 つの方法があります。
- プロジェクト設定を「プリコンパイル済みヘッダーを使用しない」に変更します (プロジェクトを右クリック -> ポップアップ メニューで「プロパティ」を選択 -> 構成プロパティ -> 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)
WinDivert オープン ソースの WFP コールアウト ドライバーを使用できます。
WinDivert は基本的に、パケットを基盤となる Windows Filtering Platform (WFP) パケット インジェクション関数に渡します。
詳細については、このリンクをご覧ください.. http://reqrypt.org/windivert.html