将klib的knetfile.c | h移植到windows,当我在“windows unistd.h”中输入时,我收到错误C2036:'void *':未知大小

时间:2012-10-22 22:24:17

标签: c++ c visual-studio unistd.h

首先,通过“windows unistd.h”,我的意思是位于此处的示例:"is there a replacement for unistd.h for windows?

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

  

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

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

  

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

     

knetfile.c(264):警告C4244:'=':从'SOCKET'转换为'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:'function':'const char *'与'int'的间接级别不同

     

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

     

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

     

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

     

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

     

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

     

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

     

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',可能会丢失数据

我想有一小组宏或typedef缺失会清除它。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

第一个错误

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

简单正确,代码错误。没有任何修改头文件会改变你无法对void指针进行指针运算的事实。

第五个错误

knetfile.c(335):错误C2143:语法错误:缺少';'在'const'之前

也是对的。在C中,所有声明必须在任何语句之前的块的开头。可能会因C99而改变,但Microsoft编译器不支持C99。