Dự án của tôi sử dụng windows.h trong đó winsock.h được sử dụng và tôi cần bao gồm tăng: assio sử dụng winsock2. Vì vậy, tôi nhận được nhiều lỗi cho biết Winsock.h đã được bao gồm. Tôi có thể xác định WIN32_LEAN_AND_MEAN. để windows.h không sử dụng winsock. Vấn đề là, rằng tôi cần windows.h để sử dụng nó, và tôi chỉ cần Asio cho bộ đếm thời gian không đồng bộ. Tôi không cần winsock2.h của nó. Tôi đã thử tìm kiếm cách vô hiệu hóa việc sử dụng winsock2 của nó, và tôi thấy rằng tôi có thể làm điều đó bằng cách định nghĩa BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN trước khi bao gồm boost: asio, nhưng tôi vẫn gặp lỗi tương tự.Boost :: asio winsock và winsock 2 vấn đề tương thích
#include <windows.h>
#define BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN
#include <boost/asio.hpp>
Lỗi
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
Đã hoạt động! Cảm ơn :) –
Một câu hỏi nữa: Ứng dụng có thể đọc gói tin với winsock2 từ một ứng dụng phù thủy khác gửi gói tin với winsock1 không? Và ngược lại. –
@DainiusKreivys Tôi không chắc chắn các bản cập nhật đã được thực hiện từ winsock1 đến 2. Tôi chỉ có thể đoán đó là chủ yếu là sửa lỗi. Bugs sang một bên tất cả mọi thứ sẽ làm việc ok, nhưng vì có lẽ có lỗi, họ có thể đi lên. – selalerer