0

首先,“windows unistd.h”是指位于此处的示例:“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:“=”:从“SOCKET”转换为“int”,可能丢失数据

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

knetfile.c(300):警告 C4244:“=”:从“__int64”转换为“int”,可能丢失数据

knetfile.c(335):错误 C2143:语法错误:缺少“;” 在“常量”之前

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:“=”:从“SOCKET”转换为“int”,可能丢失数据

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

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

knetfile.c(537):警告 C4244:“功能”:从“int64_t”转换为“长”,可能丢失数据

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

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

knetfile.c(565):警告 C4244:“返回”:从“int64_t”转换为“off_t”,可能丢失数据

我想有一小部分宏或 typedef 缺失可以解决这个问题。有什么建议么?

4

1 回答 1

2

第一个错误

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

是正确的,而代码是错误的。对头文件进行任何修改都不会改变您无法对 void 指针进行指针运算的事实。

第五个错误

knetfile.c(335):错误 C2143:语法错误:缺少“;” 在“常量”之前

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

于 2012-10-22T22:34:20.227 回答