gpt4 book ai didi

c++ - 如何在win7+vs2013上使用GetIpInterfaceEntry

转载 作者:太空狗 更新时间:2023-10-29 20:39:58 25 4
gpt4 key购买 nike

我正在尝试使用 CreateIpForwardEntry 向路由表添加一些规则,在 win7 上有必要首先调用 GetIpInterfaceEntry(参见 this )。这是我的部分代码:

#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 header ,控制流程的是 WS2IPDEF .我 #defined 它但现在仍在工作。有人用过这个功能吗?谢谢。

最佳答案

是不编译,还是编译不运行?为了让代码编译,我必须更改包含:我删除了

#include <netioapi.h>
#include <iphlpapi.h>

并将其替换为

#include <ws2def.h>
#include <ws2ipdef.h>
#include <iphlpapi.h>

在“netioapi.h”顶部的注释之后。

关于c++ - 如何在win7+vs2013上使用GetIpInterfaceEntry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25931459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com