0

我已经开始了一个学校项目,当我开始编程时遇到了一些问题!这是我的代码(远未完成):

WSADATA wsaData; 
WORD wVersionRequested = MAKEWORD( 2, 2 ); 
int err = WSAStartup( wVersionRequested, &wsaData );
SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

struct addrinfo *info; 
int ok = getaddrinfo("www.bt.se","80",NULL,&info);

if(ok!=0) { 
    WCHAR * error = gai_strerror(ok); 
    printf("%s\n",error); 
} else while(info->ai_family != AF_INET && info->ai_next != NULL) 
    info = info->ai_next;

ok = connect(s, info->ai_addr, info->ai_addrlen);

char * message = "GET / HTTP/1.1\r\nHOST: www.bt.se\r\n\r\n"; 
ok = send(s,message,strlen(message),0);

WSACleanup();

包含文件是“winsock2.h”和“Ws2tcpip.h”!当我尝试编译程序时,我得到了这个输出:

------ 构建开始:项目:Ovning1,配置:调试 Win32 ------

欧宁.c

c:\documents and settings\fredrich\desktop\lokala nätverk\ovning1\ovning1\ovning.c(16): 警告 C4013: 'printf' undefined; 假设 extern 返回 int

c:\documents and settings\fredrich\desktop\lokala nätverk\ovning1\ovning1\ovning.c(22):错误 C2143:语法错误:缺少 ';' 在“类型”之前

c:\documents and settings\fredrich\desktop\lokala nätverk\ovning1\ovning1\ovning.c(23): error C2065: 'message' : undeclared identifier

c:\documents and settings\fredrich\desktop\lokala nätverk\ovning1\ovning1\ovning.c(23): 警告 C4047: 'function' : 'const char *' 在间接级别上与 'int' 不同

c:\documents and settings\fredrich\desktop\lokala nätverk\ovning1\ovning1\ovning.c(23): 警告 C4024: 'send' : 形参和实参 2 的不同类型

c:\documents and settings\fredrich\desktop\lokala nätverk\ovning1\ovning1\ovning.c(23): error C2065: 'message' : undeclared identifier

c:\documents and settings\fredrich\desktop\lokala nätverk\ovning1\ovning1\ovning.c(23): 警告 C4047: 'function' : 'const char *' 在间接级别上与 'int' 不同

c:\documents and settings\fredrich\desktop\lokala nätverk\ovning1\ovning1\ovning.c(23): 警告 C4024: 'strlen' : 形参和实参 1 的不同类型

========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

有谁知道为什么会发生这些错误?

4

4 回答 4

2

错误 C2143:语法错误:缺少“;” 在“类型”之前

如果这是 C 而不是 C++,则不能char * message在块的中间声明。所有变量声明都必须在块的开头。(就在 之后{)。

于 2011-02-07T21:10:53.823 回答
2

你没有包含stdio.h吗,printf declration在那个文件中

于 2011-02-07T19:18:50.453 回答
0

应该在平台 SDK http://msdn.microsoft.com/en-us/library/ms740673.aspx

编辑:虽然正如其他答案所说 - 这不是问题

于 2011-02-07T19:20:27.320 回答
0

在底部它说0成功,1失败。这只是意味着一个文件未能构建。向下扫描右侧,有来自 ovning.c 的错误和警告。首先查看每个错误并修复它。

第一个错误是 printf 未定义。显然,您有错字、缺少功能或缺少包含。正如 Tanuj 所说,您可能希望在 stdio.h 中使用 printf,因此添加 include 语句。

接下来,您有两条关于未声明标识符的消息。同样,可能缺少包含。

于 2011-02-07T19:37:37.933 回答