![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Dika |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.10.2011 Репутация: нет Всего: нет |
Добрый день.
Помогите разобраться. Мне надо написать тестовый сервер, используя WinSock, код то напишу сама, а создать приложение не получается. Сначала искала файлы winsock.h ws2_32.lib, все, что нашла для Borland C++ 3.1 не подошло. Решила сделать проект в Visual Studio 2005. Создала проект Win32 консольное приложение, файлы winsock.h ws2_32.lib вложила в папку проекта, в *.cpp прописала
при компиляции выдает ошибки: Error 1 error C2065: 'WSADATA' : undeclared identifier e:\vs 2005\testserver\testserver\testserver.cpp 11 Error 2 error C2059: syntax error : ')' e:\vs 2005\testserver\testserver\testserver.cpp 11 Error 3 error C3861: 'WSAStartup': identifier not found e:\vs 2005\testserver\testserver\testserver.cpp 11 почему они возникают? библиотеку не видят? Вопрос2 Dll? В системной директории лежит ws2_32.dll, это же библиотека. Как можно ей воспользоваться, например, для проектов .Net, я подключаю .dll и пользуюсь, почему здесь так нельзя? Со вторым вопросом разобралась. Вопрос3. Стандартные библиотеки для написания Винприложений находятся в Windows SDK, которая весит 1,3 Гб. Чтобы достать от туда библиотеку WinSock~200kb, надо скачать 1,3Гб. Это Микрософт пошутил так? Это сообщение отредактировал(а) Dika - 2.8.2012, 10:20 |
|||
|
||||
vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
Ничего там добавлять в проект не надо.
Добавлено через 7 минут и 44 секунды 2. Dll. чтоб ей пользоваться нужны 2 файла .h и .lib ну или знать имена и параметры экспортируемых функций. Добавлено через 9 минут и 26 секунд 3. в Windows она уже есть с момента установки. |
|||
|
||||
Dika |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.10.2011 Репутация: нет Всего: нет |
Добавлено @ 10:25 3. в Windows она уже есть с момента установки. как есть она должна находиться в директории c:\Program Files\Microsoft Winsows SDK\, а у меня такой директории нет. - ну это не сильно важно. Дома скачаю, проверю. Это сообщение отредактировал(а) Dika - 2.8.2012, 10:47 |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
вообще-то, обычно она обитает в C:\WINDOWS\system32 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Dika |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.10.2011 Репутация: нет Всего: нет |
ну да, там лежит ws2_32.dll, я искала ws2_32.lib и с ним winsock2.h. Короче файлы нашла в инете, только из разных источников, следую инструкции: разложила их в директории. C:\Program Files\Microsoft Visual Studio 8\VC\include - winsock2.h C:\Program Files\Microsoft Visual Studio 8\VC\lib - ws2_32.lib Создала проект Win32 консольное приложение, в *.cpp добавила #include "winsock2.h" #pragma comment(lib, "ws2_32.lib"); прописала ws2_32.lib линкере, не работает. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
...а, имеется ввиду сам lib-файл
это библиотеки импорта, нужны по-сути только при статической линковке, находиться еще могут в C:\Program Files\Microsoft SDKs\Windows\...\Lib Добавлено через 8 минут и 24 секунды 1. не работает, в смысле не компилируется, или запускается с ошибкой? 2. в исходниках, кстати, можно полный путь прописать до lib-файла, это надежнее 3. если архитектура оси ( и/или проекта ) и библиотеки различные, работать тоже не будет 4. поставки visual studio обычно включают ws2_32.lib, может что-то не так с ее установкой? Добавлено через 11 минут и 48 секунд а ничего, что там циферки разные? -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
vol4ek |
|
||||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
меня больше смущает вот эта строка:
а точнее , что он скачен черт знает откуда. Уберите .h и .lib которые Вы добавили своими руками. Замените
.h , .lib есть свои у студии. |
||||
|
|||||
Dika |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.10.2011 Репутация: нет Всего: нет |
Вот листинг
пишет ошибки Error 1 error C2065: 'WSADATA' : undeclared identifier e:\vs 2005\testserver\testserver\testserver.cpp 11 Error 2 error C2059: syntax error : ')' e:\vs 2005\testserver\testserver\testserver.cpp 11 Error 3 error C3861: 'WSAStartup': identifier not found e:\vs 2005\testserver\testserver\testserver.cpp 11 добавляю перед stdafx.h #include <winsock2.h> #pragma comment(lib, "ws2_32.lib"); в Project Property->Linker->Input->Additional Dependencies C:\Program Files\Microsoft Visual Studio 8\VC\lib\ws2_32.lib в Project Property->Linker-Command Line->Additional Options C:\Program Files\Microsoft Visual Studio 8\VC\lib\ws2_32.lib ошибки те же, вот дурында. Не в тот файл ставила, разобралась. Нашла файл stdafx.h, в него записала #include <winsock2.h> #pragma comment(lib, "ws2_32.lib"); #include <windows.h> откомпилировалось без ошибок. Спасибо за помощь. 2 дня впустую потратила. Это сообщение отредактировал(а) Dika - 2.8.2012, 12:28 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |