【c++】问题解决:"INADDR_ANY":宏重定义 “INADDR_BROADCASR”:宏重定义

本文详细阐述了在Windows环境下进行网络编程时,由于windows.h和WinSock2.h之间的定义冲突导致的问题,并提供了三种有效的解决方案,包括删除windows.h、调整头文件顺序及添加宏定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题:】 

 

【原因:】windows新老库问题,windows.h和WinSock2.h之间出现重复定义

【解决方法:】1.如果只用网络编程函数,直接删除windows.h头文件

                          2.将WinSock2.h放到windows.h上面,交换顺序

                          3.添加宏定义#define WIN32_LENA_AND_MEAN

 

 

 

 

C:/Users/Administrator/Documents/untitled1.cpp 7 0 [警告] ignoring '#pragma comment ' [-Wunknown-pragmas] C:/Users/Administrator/Documents/untitled1.cpp 0 -1 In function 'void HandleClient(SOCKET)': C:/Program Files/RedPanda-Cpp/mingw64/lib/gcc/x86_64-w64-mingw32/11.5.0/include/c++/bits/locale_facets.h 48 0 In file included from C:/Program Files/RedPanda-Cpp/mingw64/lib/gcc/x86_64-w64-mingw32/11.5.0/include/c++/bits/locale_facets.h C:/Users/Administrator/Documents/untitled1.cpp 35 21 [错误] no matching function for call to 'find(std::vector<long long unsigned int>::iterator, std::vector<long long unsigned int>::iterator, SOCKET&)' C:/Program Files/RedPanda-Cpp/mingw64/lib/gcc/x86_64-w64-mingw32/11.5.0/include/c++/bits/streambuf_iterator.h 421 5 [说明] candidate: 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >, const _CharT2&)' C:/Program Files/RedPanda-Cpp/mingw64/lib/gcc/x86_64-w64-mingw32/11.5.0/include/c++/bits/streambuf_iterator.h 421 5 [说明] template argument deduction/substitution failed: C:/Users/Administrator/Documents/untitled1.cpp 35 21 [说明] '__gnu_cxx::__normal_iterator<long long unsigned int*, std::vector<long long unsigned int> >' is not derived from 'std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >' C:/Users/Administrator/Documents/untitled1.cpp 7 0 [警告] ignoring '#pragma comment ' [-Wunknown-pragmas] C:/Users/Administrator/Documents/untitled1.cpp 0 -1 In function 'void HandleClient(SOCKET)': C:/Users/Administrator/Documents/untitled1.cpp 35 28 [错误] no matching function for call to 'find(std::vector<long long unsigned int>::iterator, std::vector<long long unsigned int>::iterator, SOCKET&)' C:/Program Files/RedPanda-Cpp/mingw64/lib/gcc/x86_64-w64-mingw32/11.5.0/include/c++/bits/locale_facets.h 48 0 In file included from C:/Program Files/RedPanda-Cpp/mingw64/lib/gcc/x86_64-w64-mingw32/11.5.0/include/c++/bits/locale_facets.h C:/Program Files/RedPanda-Cpp/mingw64/lib/gcc/x86_64-w64-mingw32/11.5.0/include/c++/bits/streambuf_iterator.h 421 5 [说明] candidate: 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >, const _CharT2&)' C:/Program Files/RedPanda-Cpp/mingw64/lib/gcc/x86_64-w64-mingw32/11.5.0/include/c++/bits/streambuf_iterator.h 421 5 [说明] template argument deduction/substitution failed: C:/Users/Administrator/Documents/untitled1.cpp 35 28 [说明] '__gnu_cxx::__normal_iterator<long long unsigned int*, std::vector<long long unsigned int> >' is not derived from 'std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >'
最新发布
08-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值