将 klib 的 knetfile.c|h 移植到 Windows,当我在"windows unistd.h"中订阅时,出现错误 C2036:"void *":未知大小

Porting klib's knetfile.c|h to windows, when I sub in the "windows unistd.h", I get error C2036: 'void *' : unknown size

本文关键字:错误 void C2036 未知 windows knetfile Windows klib unistd      更新时间:2023-10-16

首先,由" Windows Unistd.h",我的意思是这里的示例:

我正在尝试按摩knetfile.c,以便可以为Windows64编译。我的第一步是删除unistd.h包括,因为它在Windows上不可用。

致命错误C1083:无法打开包括文件:'unistd.h':没有这样的文件或目录

所以,我认为我会以链接到上面的倒入替换掷骰子。但是,这显然不起作用,因为我现在会收到一系列错误和警告:

knetfile.c(189):错误c2036:'void *':未知大小 knetfile.c(236):警告C4267:'function':从'size_t'转换为'int',可能丢失数据

knetfile.c(264):警告c4244:'=':从"插座"转换为'int',可能的数据丢失

knetfile.c(271):警告C4244:'=':从'socket'转换为'int',可能丢失数据

knetfile.c(300):警告C4244:'=':从'__int64''到'int'的转换,可能会丢失数据

knetfile.c(335):错误c2143:语法错误:丢失';''在" const"

之前

knetfile.c(336):错误c2065:'p':未申报的标识符

knetfile.c(336):错误C2100:非法间接

knetfile.c(336):错误c2065:'p':未申报的标识符

knetfile.c(337):错误c2065:'p':未申报的标识符

knetfile.c(337):错误C2100:非法间接

knetfile.c(337):错误c2065:'p':未申报的标识符

knetfile.c(337):错误C2100:非法间接

knetfile.c(337):错误c2065:'p':未申报的标识符

knetfile.c(338):错误c2065:'p':未申报的标识符

knetfile.c(338):警告c4047:'函数':'const char *'在间接级别上不同于'int'

knetfile.c(338):警告C4024:'strtoint64':正式和实际参数的不同类型1

knetfile.c(378):警告c4244:'=':从'__int64''到'int'的转换,可能会丢失数据

knetfile.c(410):警告c4244:'=':从"插座"转换为'int',可能的数据丢失

knetfile.c(430):警告C4244:'初始化':从'int64_t'转换为'off_t',可能丢失数据

knetfile.c(520):错误c2036:'void *':未知大小

knetfile.c(537):警告C4244:'function':从'int64_t'转换为"长",可能的数据丢失

knetfile.c(544):警告c4244:'return':从'int64_t'转换为'off_t',可能丢失数据

knetfile.c(553):警告c4244:'return':从'int64_t'转换为'off_t',可能丢失数据

knetfile.c(565):警告c4244:'return':从'int64_t'转换为'off_t',可能丢失数据

我想,缺少一小部分宏或类型的宏可以清除这一点。有任何建议吗?

第一个错误

knetfile.c(189):错误c2036:'void *':未知大小

是正确的,代码是错误的。对标头文件的修补量不会改变您无法在void Pointers上进行指针算术的事实。

第五次错误

knetfile.c(335):错误c2143:语法错误:丢失';''在" const"

之前

也是正确的。在C中,所有声明都必须在任何语句之前的块开始。可能会随着C99的变化,但是Microsoft编译器不支持C99。

相关文章: