繁体   English   中英

将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

首先,通过“windows unistd.h”,我的意思是这里的例子: “是否有替换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',可能会丢失数据

我想有一小组宏或类型的缺失可以解决这个问题。 有什么建议么?

第一个错误

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

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

第五个错误

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM