Wol*_*lan 7 c++ sockets visual-studio-2008 visual-c++
在尝试编译<winsock2.h>包含的VS2008 c ++项目时,得到了重新定义和语法错误的堆(105).运行Windows 7 64位.我用谷歌搜索和搜索,答案看起来很均匀,但它似乎对我不起作用.
尝试过#include <winsock2.h>之前#include <windows.h>.也尝试不包括<windows.h>(因为winsock2如果丢失则自动包含它).
尝试#define WIN32_LEAN_AND_MEAN和/或#define _WINSOCKAPI_先前.
在链接器 - >其他依赖项中,我引用了ws2_32.lib.也试过了#pragma comment(lib, "ws2_32.lib").
为了以防万一,我重建整个解决方案.
通常的错误(似乎许多人共享):
Error 5 error C2011: 'sockaddr' : 'struct' type redefinition c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 206 RallyAction
Error 6 error C2143: syntax error : missing '}' before 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction
Error 7 error C2143: syntax error : missing ';' before 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction
Error 8 error C2059: syntax error : 'constant' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h 384 RallyAction
Run Code Online (Sandbox Code Playgroud)
......等等等等.
任何建议,将不胜感激.
Len*_*ate 13
我有一个"WinsockWrapper.h"标题,可以帮助我确保一致性......它的要点是;
#ifndef _WINDOWS_
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
#endif
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
Run Code Online (Sandbox Code Playgroud)
在任何可能在任何需要winsock2.h的文件中引入windows.h的东西之前包括这个
这个,恕我直言意味着把它放在需要winsock2.h的大多数文件的顶部...
确保您的预编译头文件(如果您正在使用它)也首先使用它.
| 归档时间: |
|
| 查看次数: |
8977 次 |
| 最近记录: |