如何使用MIB_IPINTERFACE_ROW结构编译代码

时间:2018-01-22 11:56:41

标签: c++ windows visual-studio-2015 mib

我正在尝试使用MIB_IPINTERFACE_ROW structure编译代码。让我们在我的工作代码中包含以下类:

class IpInterfaceRow {
private:
    MIB_IPINTERFACE_ROW mib_ipinterface_row;
};

使用Visual Studio 2015我遇到以下错误: unknown override specifier(C3646)和 missing type specifier - int assumed. Note: C++ does not support default-int(C4430)

您可以查看here - C3646here - C4430。真的第二个更像是一个警告,我可以用#pragma warning关闭,我认为它取决于第一个(因为编译器不识别MIB_IPINTERFACE_ROW,它试图给它值一个int,因此第二个错误)然后,我专注于第一个。

我认为这可能是我包含/不包含错误顺序的标题问题?我尝试了很多选择: #include <netioapi.h>#include <iphlapi.h>等等...... 例如,从here开始,我尝试使用

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

但结果相同......如果我尝试使用MIB_INTERFACE_TABLE,我会遇到同样的问题。我还尝试在GetIpInterfaceTable()中编译示例代码,其中包含

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif

#include <windows.h>
#include <winsock2.h>
#include <ws2ipdef.h>
#include <iphlpapi.h>
#include <stdio.h>
#include <stdlib.h>

#pragma comment(lib, "iphlpapi.lib")

但同样的结果......

有人知道可能出现什么问题?在我的情况下,C3646的错误是什么意思?

1 个答案:

答案 0 :(得分:0)

以下内容确实包含

#include <winsock2.h>
#include <windows.h>
#include <ws2ipdef.h>
#include <iphlpapi.h>
#include <stdio.h>
#include <stdlib.h>

#pragma comment(lib, "iphlpapi.lib")

在我的代码中,之前有两个文件包含了我的问题:

  • 第一个包含iphlpapi.h(然后,在ws2ipdef.h之前包含)

  • 第二个包括netcfgx.h,其中包含windows.h(然后包含在winsock2.h之前)

请特别注意其他标题,例如在我的情况netcfgx.h中可以包含一些标题,即windows.h并使订单错误