我正在尝试使用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 - C3646和here - 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的错误是什么意思?
答案 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
并使订单错误