Il mio progetto utilizza windows.h in cui viene utilizzato winsock.h e ho bisogno di includere boost: assio che utilizza winsock2. Quindi ricevo molti errori che indicano che Winsock.h è già incluso. Posso definire WIN32_LEAN_AND_MEAN. in modo che windows.h non usasse winsock. Il problema è che ho bisogno di windows.h per usarlo, e ho solo bisogno di Asio per i timer asincroni. Non ho bisogno del suo winsock2.h. Ho provato a cercare come disabilitare il suo uso di winsock2, e ho scoperto che potevo farlo definendo BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN prima di includere boost: asio, ma ho ancora lo stesso errore.Boost :: asio winsock e winsock 2 problema di compatibilità
#include <windows.h>
#define BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN
#include <boost/asio.hpp>
errore
1>c:\program files\boost\boost_1_47\boost\asio\detail\socket_types.hpp(22): fatal error C1189: #error : WinSock.h has already been included
Ha funzionato! Grazie :) –
Un'altra domanda: un'applicazione può leggere pacchetti con winsock2 da un'altra applicazione che invia pacchetti con winsock1? E viceversa. –
@DainiusKreivys Non sono sicuro di quali aggiornamenti sono stati eseguiti da winsock1 a 2. Posso solo supporre che si tratti principalmente di correzioni di bug. Gli errori a parte tutto dovrebbe funzionare bene, ma dal momento che probabilmente ci sono bug, potrebbero venire fuori. – selalerer