Модераторы: feodorv

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с WinSock2, inet_pton не найдена в ws2_32.dll 
:(
    Опции темы
andrew_121
  Дата 29.5.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: нет
Всего: 33



Программа с использованием сокетов. Компилируется, линкуется, а при попытке запустить, сообщает:
Точка входа в процедуру inet_pton не найдена в библиотеке ws2_32.dll
Т.е. Я так понимаю, что сама длл-ка есть, но в ней нет этого экспорта. Почему же он есть в библиотеке экспорта?



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
REZiaMIX
Дата 29.5.2009, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 3.11.2007

Репутация: нет
Всего: 4



inet_addr не тоже самое?


--------------------
user posted image
PM MAIL   Вверх
andrew_121
Дата 29.5.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: нет
Всего: 33



Цитата(REZiaMIX @  29.5.2009,  15:34 Найти цитируемый пост)
inet_addr не тоже самое? 

Думаю нет. Да и вопрос не в этом.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
azesmcar
Дата 29.5.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



http://msdn.microsoft.com/en-us/library/cc805844(VS.85).aspx
хочу обратить внимание на это
Цитата

Minimum supported client    Windows Vista
Minimum supported server    Windows Server 2008
Header    Ws2tcpip.h
Library    Ws2_32.lib
DLL    Ws2_32.dll
Unicode and ANSI names    InetPtonW (Unicode) and InetPtonA or inet_pton (ANSI)

PM   Вверх
andrew_121
Дата 29.5.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: нет
Всего: 33



azesmcar, Гм... А что вместо нее использовать? inet_addr как-то не то smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
azesmcar
Дата 29.5.2009, 17:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



andrew_121
смотря что нужно smile
это разные функции.
inet_addr - конвертирует в IN_ADDR, плюс он не работает с Ipv6.
Можно самому написать конвертер (или еще проще - скопировать из сорсов юникса)

http://www.koders.com/c/fid74A647B73741DDD...84E8740D43.aspx
http://www.samba.org/rsync/doxygen/head/in..._8c-source.html
вот сорс-код

Это сообщение отредактировал(а) azesmcar - 29.5.2009, 17:23
PM   Вверх
andrew_121
Дата 29.5.2009, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: нет
Всего: 33



azesmcar, Спасибо! Ща попробую.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
andrew_121
Дата 29.5.2009, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: нет
Всего: 33



Не помогло.
В моем коде эта функция используется всего однажды. Я ее переименовал, и подсунул из сорца. Возможно она используется другими функциями из Sockets2.

Какие еще предложения?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
REZiaMIX
Дата 29.5.2009, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 3.11.2007

Репутация: нет
Всего: 4



попробовать скачать библиотеку winsock2.dll от висты , вручную загрузить(getprocaddress) из нее функцию и переопределить дефайном(или перехватить).
Извращенно , но может прокатит :В

библиотека называеца ws2_32.dll

Это сообщение отредактировал(а) REZiaMIX - 29.5.2009, 19:17


--------------------
user posted image
PM MAIL   Вверх
andrew_121
Дата 29.5.2009, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: нет
Всего: 33



Я так и сделал. Скачал. Положил в каталог с программой. Но нет, не хочет ее использовать.
Вот думаю подменить стандартную виндовскую на эту, хз что произойдет smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
REZiaMIX
Дата 29.5.2009, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 3.11.2007

Репутация: нет
Всего: 4



Цитата(andrew_121 @ 29.5.2009,  19:17)
Я так и сделал. Скачал. Положил в каталог с программой. Но нет, не хочет ее использовать.
Вот думаю подменить стандартную виндовскую на эту, хз что произойдет smile

а если сделать FreeLibrary , а потом LoadLibrary с полным путем?


--------------------
user posted image
PM MAIL   Вверх
REZiaMIX
Дата 29.5.2009, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 3.11.2007

Репутация: нет
Всего: 4



Можно сделать LoadLibrary правильной DLL;
потом обявить самому эту функцию, и GetProcAddress(...).
Тогда 100% функция будет что надо ,но не факт что результат в общем будет правильным, и не факт что функция из dll висты заработает

По хорошему - тут надо искать другое , не каверзное решение.


--------------------
user posted image
PM MAIL   Вверх
azesmcar
Дата 29.5.2009, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Цитата(andrew_121 @  29.5.2009,  18:03 Найти цитируемый пост)
Не помогло.
В моем коде эта функция используется всего однажды. Я ее переименовал, и подсунул из сорца. Возможно она используется другими функциями из Sockets2.

подробнее пожалуйста. Что должно было произойти, и что произошло.

Цитата(andrew_121 @  29.5.2009,  19:17 Найти цитируемый пост)
Вот думаю подменить стандартную виндовскую на эту, хз что произойдет smile  

лучше не надо
а вообще - подробнее о задаче, люди до появления висты писали программы под виндоуз и не жаловались на отсутствие этой функции. Почему она вдруг стала так жизненно важна?
PM   Вверх
andrew_121
Дата 29.5.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: нет
Всего: 33



Перегрузился в Лин, подменил на вистовскую версию этой либы. Экран смерти. Вернул все как прежде.

Цитата(REZiaMIX @  29.5.2009,  19:18 Найти цитируемый пост)
а если сделать FreeLibrary , а потом LoadLibrary с полным путем? 

    Можно попробовать. Но я полагаю, что ХР версия этой длл-ки статически подгружается. Получится ли ее выгрузить...надо пробовать.

Цитата(REZiaMIX @  29.5.2009,  19:36 Найти цитируемый пост)
Можно сделать LoadLibrary правильной DLL;
потом обявить самому эту функцию, и GetProcAddress(...).
Тогда 100% функция будет что надо ,но не факт что результат в общем будет правильным, и не факт что функция из dll висты заработает

И это пробовал. Но как я понял, эту же функцию, наверное, используют другие функции из Socks2. Я выше писал. Цитирую:
Цитата
В моем коде эта функция используется всего однажды. Я ее переименовал, и подсунул из сорца. Возможно она используется другими функциями из Sockets2.


Цитата(azesmcar @  29.5.2009,  19:40 Найти цитируемый пост)
подробнее пожалуйста. Что должно было произойти, и что произошло.

Было: 
Цитата
Программа с использованием сокетов. Компилируется, линкуется, а при попытке запустить, сообщает:
Точка входа в процедуру inet_pton не найдена в библиотеке ws2_32.dll

Последовал вашему совету: 
Цитата
Можно самому написать конвертер (или еще проще - скопировать из сорсов юникса)

Все так и осталось.

Цитата(azesmcar @  29.5.2009,  19:40 Найти цитируемый пост)
лучше не надо

Уже понял)))
Цитата(azesmcar @  29.5.2009,  19:40 Найти цитируемый пост)
а вообще - подробнее о задаче, люди до появления висты писали программы под виндоуз и не жаловались на отсутствие этой функции. Почему она вдруг стала так жизненно важна?

Согласен. Программа в Лине работает. Нужно чтоб работала в Винде.

Вот smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
azesmcar
Дата 29.5.2009, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Цитата(andrew_121 @  29.5.2009,  20:23 Найти цитируемый пост)
Было: 

Было, не то что я спрашивал

Цитата(andrew_121 @  29.5.2009,  20:23 Найти цитируемый пост)
Согласен. Программа в Лине работает. Нужно чтоб работала в Винде.

хотя тут я ответ получил smile 
Я собственно не понял, в чем проблема была? скопировал из сорсов линукса, 
1. функция откомпилировалась? Да/Нет.
2. тестировалась отдельно от проекта? Да/Нет.


Это сообщение отредактировал(а) azesmcar - 29.5.2009, 20:33
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0939 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.