CreateIpForwardEntryを使用してルート テーブルにルールを追加しようとしています。最初に win7でGetIpInterfaceEntryを呼び出す必要があります(これを参照)。ここに私のコードの一部があります:
#pragma warning(disable: 4996)
#define WIN32_LEAN_AND_MEAN
#define _WIN32_WINNT 0x601
//#define _WS2IPDEF_
//#define __IPHLPAPI_H__
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <netioapi.h>
#include <iphlpapi.h>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
#pragma comment(lib, "iphlpapi.lib")
int main() {
typedef DWORD(__stdcall *IPINTENTRY)(PMIB_IPINTERFACE_ROW);// undeclared identifier
MIB_IPINTERFACE_ROW info;
info.InterfaceIndex = 1;
memset(&(info.InterfaceLuid),0,sizeof(info.InterfaceLuid));
info.Family = AF_INET;
HINSTANCE hInst = ::LoadLibrary("Iphlpapi.dll");
IPINTENTRY pFunGetInfEntry = (IPINTENTRY)GetProcAddress(hInst,"GetIpInterfaceEntry");
DWORD dwRet = pFunGetInfEntry(&info);
}
コードはコンパイルされません。PMIB_IPINTERFACE_ROWは宣言されていない識別子です。Windows ヘッダーを調べました。フローを制御するのはWS2IPDEFです。私はそれを #define しましたが、まだ動作しています。この機能を使ったことのある人はいますか?ありがとう。