информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяСтрашный баг в WindowsSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Вот уж чего я бы не советовал - это вмешиваться в APIшные заголовки. 17.03.04 16:02  Число просмотров: 1544
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
<programming>
[Win32] #include 16.03.04 21:19  
Автор: choor Статус: Elderman
<"чистая" ссылка>
При компиле вылазит:

Построить
  [C++ Error] winsock2.h(109): E2238 Multiple declaration for 'fd_set'
  [C++ Error] winsock.h(54): E2344 Earlier declaration of 'fd_set'
  [C++ Error] winsock2.h(112): E2146 Need an identifier to declare
  [C++ Предупреждение] winsock2.h(144): W8017 Redefinition of 'FD_SET' is not identical
  [C++ Error] winsock2.h(153): E2238 Multiple declaration for 'timeval'
  [C++ Error] winsock.h(97): E2344 Earlier declaration of 'timeval'
  [C++ Error] winsock2.h(209): E2238 Multiple declaration for 'hostent'
  [C++ Error] winsock.h(153): E2344 Earlier declaration of 'hostent'
  [C++ Error] winsock2.h(222): E2238 Multiple declaration for 'netent'
  [C++ Error] winsock.h(166): E2344 Earlier declaration of 'netent'
  [C++ Error] winsock2.h(229): E2238 Multiple declaration for 'servent'
  [C++ Error] winsock.h(173): E2344 Earlier declaration of 'servent'
  [C++ Error] winsock2.h(241): E2238 Multiple declaration for 'protoent'
  [C++ Error] winsock.h(185): E2344 Earlier declaration of 'protoent'
  [C++ Error] winsock2.h(327): E2238 Multiple declaration for 'in_addr'
  [C++ Error] winsock.h(269): E2344 Earlier declaration of 'in_addr'
  [C++ Error] winsock2.h(385): E2238 Multiple declaration for 'sockaddr_in'
  [C++ Error] winsock.h(319): E2344 Earlier declaration of 'sockaddr_in'
  [C++ Error] winsock2.h(395): E2238 Multiple declaration for 'WSAData'
  [C++ Error] winsock.h(329): E2344 Earlier declaration of 'WSAData'
  [C++ Error] winsock2.h(411): E2146 Need an identifier to declare
  [C++ Предупреждение] winsock2.h(455): W8017 Redefinition of 'SO_DONTLINGER' is not identical
  [C++ Предупреждение] winsock2.h(512): W8017 Redefinition of 'AF_IPX' is not identical
  [C++ Предупреждение] winsock2.h(540): W8017 Redefinition of 'AF_MAX' is not identical
  [C++ Error] winsock2.h(546): E2238 Multiple declaration for 'sockaddr'
  [C++ Error] winsock.h(492): E2344 Earlier declaration of 'sockaddr'
  [C++ Error] winsock2.h(586): E2238 Multiple declaration for 'sockproto'
  [C++ Error] winsock.h(501): E2344 Earlier declaration of 'sockproto'
  [C++ Error] winsock2.h(625): E2238 Multiple declaration for 'linger'
  [C++ Error] winsock2.h(625): E2228 Too many error or warning messages

---

Может существуют какие-то особенности при работе с winsock2.h ? глядел внутрь.... ничего не нашёл
[Win32] #include 17.03.04 17:40  
Автор: ukv Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Особенность при работе с Winsock2 одна - не надо одновременно использовать интерфейс к старой версии API. Отличаются они тем, что в Winsock2 добавлены новые функции, начинающиеся с префикса WSA (за исключением WSAStartup, WSACleanup, WSARecvEx, WSAGetLastError - которые уже были в Winsock 1.x). Это в теории.

На практике в winsock.h куча имен, начинающихся с WSA. Но общее правило все равно то же: либо winsock.h, либо winsock2.h.

Если ссылка на winsock.h внутри windows.h - можно попробовать поставить #include <winsock2.h> выше включения windows.h. Тогда (в VC6) переменнаяWINSOCKAPIбудет установлена до включения файла windows.h и включения winsock.h из него, и ошибок быть не должно.
[Win32] #include 17.03.04 08:18  
Автор: IgorR <Igor Razin> Статус: Member
<"чистая" ссылка>
Замени в windows.h winsock.h на winsock2.h, или дефайн нужный поставь.
Вот уж чего я бы не советовал - это вмешиваться в APIшные заголовки. 17.03.04 16:02  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
Ну, например, в моем windows.h от 7.0 студии нету упоминания... 17.03.04 16:20  
Автор: IgorR <Igor Razin> Статус: Member
<"чистая" ссылка>
Ну, например, в моем windows.h от 7.0 студии нету упоминания о winsock2.h. В windows.h от 6.0 есть. Как быть?
Эта, ты определись - либо winsock.h, либо winsock2.h. Одновременно их включать нельзя. 16.03.04 21:28  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
Мои инклуды 16.03.04 21:33  
Автор: choor Статус: Elderman
<"чистая" ссылка>
#define WIN32
#include <windows.h>
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

---
А дефайны? С которыми компилятор собирает. 16.03.04 21:37  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
только #define WIN32 16.03.04 21:58  
Автор: choor Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach