2008年8月28日 星期四

error C2011: 'fd_set' : 'struct' type redefinition

最近在一陣忙亂中....遇到了這個問題

compile的時候提示winsock.h和winsock2.h中的定義衝突macro redefinition。這個問題看起來就是重複定義,但是我的程式中並include winsock2.h,真的是超怪的....

於是又google了一下這個問題原來在VC6的windows.h裡面有一段

#if(_WIN32_WINNT >= 0x0400)
#include
#include
#else
#include
#endif /* _WIN32_WINNT >= 0x0400 */



這就是造成重複定義的原因阿 囧....

解決方法就是在所有的#include 前面
使用 #define WIN32_LEAN_AND_MEAN,如:
#define WIN32_LEAN_AND_MEAN
#include


或是把引用winsock.h改成了windows.h就可以解決了吧!!

沒有留言: