WINVER,winsock和htonl()

当我没有定义WINVER的时候,我的(msvc9)版本里面充满了警告,它说默认为0x0600(Vista),但是它的版本确定。 当我定义WINVER = 0x501(XP)时,我得到这个错误: –

error C3861: 'htonl': identifier not found 

我宁愿使用WINVER = 0x0501比0x0600,但我不知道如何解决它!

我注意到http://west-chamber-season-2.googlecode.com/svn-history/r2/trunk/wcs2_cli.c

 #ifdef WINVER #include <winsock.h> #else #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #endif 

我需要做这样的事吗? 有任何想法吗?

如果你正在编译windows,那么#include winsock2.h和ws2tcpip.h并链接到ws2_32.lib。 同时确保在尝试任何联网功能之前调用WSAStartup