sdkincludewspiapi.h(47) : error C2265: ‘‘ : reference to a zero-sized array is illegal 解决方案

发布于 2020-05-06  44 次阅读


问题描述:

编译Gh0st源码遇到问题

编写IP多播程序时,要用到ip_mrep结构,在编译时报如下错误:

sdkincludewspiapi.h(47) : error C2265: ‘<Unknown>’ : reference to a zero-sized array is illegal

解决方法:

这种错误是由于wspiapi.h头文件里缺少   #define _WSPIAPI_COUNTOF 语句造成的!

找到你安装的platformsdk/include目录下的wspiapi.h头文件,开头部分写如这条语句即可:

#define _WSPIAPI_COUNTOF

源库文件代码:

1 #ifndef _WSPIAPI_H_

2 #define _WSPIAPI_H_

3

4 #include <stdio.h> // sprintf()

5 #include <stdlib.h> // calloc(), strtoul()

6 #include <malloc.h> // calloc()

7 #include <string.h> // strlen(), strcmp(), strstr()

修改后代码:

#ifndef _WSPIAPI_H_

#define _WSPIAPI_H_

// 添加了#define _WSPIAPI_COUNTOF

#define _WSPIAPI_COUNTOF


#include <stdio.h> // sprintf()

#include <stdlib.h> // calloc(), strtoul()

#include <malloc.h> // calloc()

#include <string.h> // strlen(), strcmp(), strstr()

重新编译程序就行了


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。