Вопрос

I am compiling a project in Visual C++ 2010, but I have problems with some Winsock redefinitions.

First of all I get:

syntax error : identifier 'SOCKADDR_STORAGE'

But if I include winsock or winsock2 or ws2tcpip i get many errors like these:

error C2011: 'sockaddr' : 'struct' type redefinition 
error C2011: 'WSAData' : 'struct' type redefinition
error C2011: 'linger' : 'struct' type redefinition
Это было полезно?

Решение

Your problem is that by including Windows.h, you are also already including winsock.h. It is here your problem arises as including winsock2.h or ws2tcpip.h will attempt to redefine some of the definitions in winsock.h

By using #define WIN32_LEAN_AND_MEAN before your Windows.h include you stop the compiler from including a lot of the extra stuff that comes with Windows.h

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top