疑难问题。

csdn网速很慢 2012-02-27 11:15:26
#include "StdAfx.h"
#include <Mswsock.h>
#include <WinSock2.h>
#include "IOCPserver.h"
#pragma comment(lib, "WS2_32.lib")

我一个类是正确的用过的。 换了个包含的位置以前带stdafx里边。现在复制到另外的工程有上百个错误。
这个在。cpp的前边。有什么问题么

第一个错误就说mswsock.h里边这个定义错误。 编译器凭什么说windows库错误啊。
typedef struct _TRANSMIT_FILE_BUFFERS {
LPVOID Head;
DWORD HeadLength;
LPVOID Tail;
DWORD TailLength;
} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, FAR *LPTRANSMIT_FILE_BUFFERS;
...全文
165 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
一叶之舟 2012-02-27
  • 打赏
  • 举报
回复
用完成端口最好用SDK
赵4老师 2012-02-27
  • 打赏
  • 举报
回复
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
csdn网速很慢 2012-02-27
  • 打赏
  • 举报
回复
了解了。 看来这是windows版本的问题。也就不深究它了 谢谢各位
nice_cxf 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 jiergio 的回复:]
引用 11 楼 nice_cxf 的回复:
mswsock似乎是很老的,应该和windows.h和WinSock2.h冲突的问题差不多
在。cpp文件最前边加上#define WIN32_LEAN_AND_MEAN试试

mswsock 这个是不是已经被废弃了?
[/Quote]
没有,不过最好不要直接包含,一般包含windows.h大概就可以了
nice_cxf 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jiergio 的回复:]
引用 11 楼 nice_cxf 的回复:
mswsock似乎是很老的,应该和windows.h和WinSock2.h冲突的问题差不多
在。cpp文件最前边加上#define WIN32_LEAN_AND_MEAN试试

错误能少了点。 但还是不行

我放到stafx中 并且
#include <WinSock2.h>
#include <Mswsock.h>
#include ……
[/Quote]
======
头文件包含顺序问题,WinSock2是新的socket的头文件,而Mswsock.h或windows.h是旧的
参见:
http://blog.csdn.net/markman101/article/details/5738473
csdn网速很慢 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 nice_cxf 的回复:]
mswsock似乎是很老的,应该和windows.h和WinSock2.h冲突的问题差不多
在。cpp文件最前边加上#define WIN32_LEAN_AND_MEAN试试
[/Quote]
mswsock 这个是不是已经被废弃了?
csdn网速很慢 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 saleayas 的回复:]
#include <WinSock2.h>

不要 #include 其他的。比如 Windows.h 和 Mswsock.h
[/Quote]
#include <Mswsock.h>
这个要用到不得不用
csdn网速很慢 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 nice_cxf 的回复:]
mswsock似乎是很老的,应该和windows.h和WinSock2.h冲突的问题差不多
在。cpp文件最前边加上#define WIN32_LEAN_AND_MEAN试试
[/Quote]
错误能少了点。 但还是不行

我放到stafx中 并且
#include <WinSock2.h>
#include <Mswsock.h>
#include <Windows.h>
#pragma comment(lib, "WS2_32.lib")
以这个顺序 编译成功
不知道这是什么原因?
Saleayas 2012-02-27
  • 打赏
  • 举报
回复
#include <WinSock2.h>

不要 #include 其他的。比如 Windows.h 和 Mswsock.h
nice_cxf 2012-02-27
  • 打赏
  • 举报
回复
mswsock似乎是很老的,应该和windows.h和WinSock2.h冲突的问题差不多
在。cpp文件最前边加上#define WIN32_LEAN_AND_MEAN试试
csdn网速很慢 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 visualeleven 的回复:]
头文件包含的顺序不对
#include <Mswsock.h>
#include <WinSock2.h>

--》

#include <WinSock2.h>
#include <Mswsock.h>
[/Quote]
第一个位置前几个错误说 未定义什么的 后一个出现一大堆的重定义错误。。
各种组合正在试验中。。。
SLSnake 2012-02-27
  • 打赏
  • 举报
回复
比较两个"StdAfx.h"中内容的差异,还有像楼上所说的,改变#include <Mswsock.h>
#include <WinSock2.h>这个两个顺序试试
csdn网速很慢 2012-02-27
  • 打赏
  • 举报
回复
而且很多错误指向widnow的库里边了。 上次就是没注意把windows的库给改了改不会来,悲剧的重装了系统
csdn网速很慢 2012-02-27
  • 打赏
  • 举报
回复
谢谢各位回答。 错误我也不清楚在那儿
这是我现在的。cpp 前几行
#include "StdAfx.h"
#include <Mswsock.h>
#include <WinSock2.h>
#include "IOCPserver.h"
#pragma comment(lib, "WS2_32.lib")
错误
错误 1 error C2011: “_TRANSMIT_FILE_BUFFERS”:“struct”类型重定义 c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 128 1 test1
错误 2 error C2061: 语法错误: 标识符“LPWSAMSG” c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 403 1 test1
错误 3 error C2146: 语法错误: 缺少“;”(在标识符“fdArray”的前面) c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 450 1 test1
错误 4 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 450 1 test1
错误 5 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 450 1 test1
错误 6 error C2146: 语法错误: 缺少“;”(在标识符“lpMsg”的前面) c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 459 1 test1
错误 7 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 459 1 test1
错误 8 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 459 1 test1
错误 9 error C2146: 语法错误: 缺少“;”(在标识符“lpOverlapped”的前面) c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 462 1 test1
错误 10 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int c:\program files\microsoft sdks\windows\v7.0a\include\mswsock.h 462 1 test1
太多了这只是前几行

这个是以前的。cpp 能正常运行
#include "StdAfx.h"
#include "IOCPserver.h"

WINDOWS网络头包含在了stdafx中 区别就这么点错误却多了上百个
从头来过 2012-02-27
  • 打赏
  • 举报
回复
最好把错误贴上来
Eleven 2012-02-27
  • 打赏
  • 举报
回复
头文件包含的顺序不对
#include <Mswsock.h>
#include <WinSock2.h>

--》

#include <WinSock2.h>
#include <Mswsock.h>
nanchangfantasy 2012-02-27
  • 打赏
  • 举报
回复
请将问题描述清楚,需求不清楚,不好解答
Saleayas 2012-02-27
  • 打赏
  • 举报
回复
没有明白在说什么?

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧