| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Подключаю <windows.h> и <winsock2.h>=ошибка |
| Автор: Dmi3ev 25.2.2009, 03:33 | ||
| продолжаю в VS разбираться. только подключаю <windows.h>, сразу проблемы (консоль).
как это исправить? |
| Автор: andrew_121 25.2.2009, 05:50 |
| Dmi3ev, Какая версия студии? Покажи порядок подключения хедеров. |
| Автор: mrbrooks 25.2.2009, 08:47 |
| Dmi3ev, а ты где именно его инклюдишь? В stdafx.h? |
| Автор: cutwater 25.2.2009, 11:04 |
| перед инклюдами нужно тогда сделать такой хитрый дефайн #define WIN32_LEAN_AND_MEAN |
| Автор: Dmi3ev 25.2.2009, 11:49 |
| cutwater, действительно, проблема решилась, а можно пояснения??? |
| Автор: cutwater 25.2.2009, 12:36 | ||
| В двух словах - исключает редко используемые описания и т.д. из заголовков windows А если подробней, то в MSDN.
|
| Автор: pan2004 25.2.2009, 17:30 | ||
Ну, от отсутствия дефайна такой проблемы быть в принципе не должно.
Одна и та же структура объявляется в двух разных хидерах. Видимо, у MS не все в порядке с головой было. |
| Автор: Dmi3ev 25.2.2009, 18:25 | ||||||||
| pan2004, не понял, за что ты мне репутацию уменьшил, но да ладно дело не в этом. Я разбираюсь в студии и не понимаю, почему
вот это выдает 105 ошибок и 16 предупреждений вот они...
а вот это пашет
лучше объясните, а не репутацию мне уменьшайте, мне на это по... а вот почему так происходит, меня волнует...
|
| Автор: Dem_max 25.2.2009, 18:38 | ||||
pan2004,
У Builder тоже самое. решается так
|
| Автор: mrbrooks 26.2.2009, 16:25 | ||
пробуй так:
совет - выше написанное - вставь в stdafx.h Добавлено через 1 минуту и 40 секунд собственно библиотеку ws2_32.lib можешь присоединить и в свойствах проекта. Иначе работа с сокетами нормальной не будет. Добавлено через 3 минуты и 13 секунд будь внимателен сначало winsock2.h, затем windows.h |
| Автор: mrbrooks 26.2.2009, 16:52 | ||||
Можно и так:
Дело в том, что в windows.h инклудится winsock.h, который во многом повторяет winsock2.h. Добавлено через 3 минуты и 42 секунды
это собственно и отменяет включение winsock.h, как и WIN32_LEAN_AND_MEAN - только более конкретно. |
| Автор: Dmi3ev 26.2.2009, 17:44 | ||||
mrbrooks, спасибо за объяснения. Я пишу теперь вот так:
в такой последоватльности все почему-то работает, а в такой нет:
ладно, понял суть проблемы, знаю пути ее решения (причем несколько), уже неплохо, в дебри лезть не нужно, наверно... там просто ошибки, не хватает точки с запятой... левые какие-то... |
| Автор: Олег2005 26.2.2009, 23:23 |
| если есть #include <winsock2.h> то это вообще не надо #include <windows.h> |
| Автор: GremlinProg 26.2.2009, 23:43 | ||||
вобщем-то так оно и есть: winsock2.h сам подключает windows.h, если он не был подключен
причем перекрывает перед этим включение winsock.h, чтобы не было конфликтов
Добавлено через 13 минут и 53 секунды для гармонии достаточно было пару-тройку строк оставить и все |
| Автор: ZakharAV 13.10.2009, 07:50 |
| Добрый день, люди. Начал осваивать VC. Установил VC2005 Express Edition. При компиляции программки выдает сообщение - нет windows.h. В установленном комплекте его нет. Вопрос - в Express Edition его по определению не может быть или я что-то не то и не туда вставил? Добавлено через 3 минуты и 52 секунды Прошу прощения - ошибся темой. Пощел к новичкам |