![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
W_A_S_J_A |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 5.3.2007 Репутация: нет Всего: нет |
Помогите будь-ласка. Очень нужно :(
В своей программе я вписал такой код (инициализация HTTP сессии):
Смотрю что возвращает InternetOpen а там всегда :13369348, 13369360, 13369372, 13369384, 13369396......(код вызывается у меня в программе в цыкли) не зависимо есть ли подключение к интернету, или нет. Также не суть важно присоэдэняюсь через прокси или нет, всегда возвращается аналогичное. Меня интересует должно ли оно так и работать, если так то когда возникнет hInternet==NULL ? если программа даже с отсоэдэньонной сетью будет инициализировать HTTP сессию. Это сообщение отредактировал(а) W_A_S_J_A - 6.4.2008, 15:05 |
|||
|
||||
korian |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: нет Всего: 17 |
Почему InternetOpen должен возвращать NULL?
А если комп является HTTP-сервером... и на этом же компе есть прога, которая является HTTP-клиентом и получает у этого сервера какие-то данные... Сеть есть всегда, если в системе установлен протокол TCP/IP. а вот функции типа InternetOpenUrl или InternetConnect вернут NULL, если нет возможности соединиться с сервером. |
|||
|
||||
W_A_S_J_A |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 5.3.2007 Репутация: нет Всего: нет |
Теперь понял. InternetOpen делает что-то типу заготовки только в TCP/IP и возвращает номер "заготовки"
Просто я думал, что если сеть отсоединена, то должно возвращаться NULL, а NULL возвращается в случае если в TCP/IP глюки. Правильно я понял ? |
|||
|
||||
korian |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: нет Всего: 17 |
такого состояния достичь нельзя, сеть из одного компьютера - тоже сеть. я не знаю, когда он будет возвращать NULL. MSDN по этому поводу ничего не пишет... пишет только то, что может возвращать NULL, чтобы узнать в чем проблема используйте GetLastError... а проблемы могут быть самыми разными... например, нехватка памяти или еще каких ресурсов, или отсутствие какой-нить необходимой библиотеки или драйвера... т.к. не описано какое значение может возвращать GetLastError при InternetOpen==NULL, надо расчитывать на то, что GetLastError может вернуть любое значение, кроме ERROR_SUCCES. |
|||
|
||||
W_A_S_J_A |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 5.3.2007 Репутация: нет Всего: нет |
Благодарность, понял.
Короче если веб браузер нормально работает на машине, то в большинстве случаев InternetOpen не повернет NULL. Но для случая когда NULL всьоже повернется лучше сделать проверку, а заодно и вывести что возвращает GetLastError, чтобы знать в чем проблема. |
|||
|
||||
korian |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: нет Всего: 17 |
ага, где-то так.
а чтобы юзеру было более понятно, почему произошла ошибка (по номеру ошибки даже программер сразу не скажет в чем проблема) можно использовать следующий код:
Это сообщение отредактировал(а) korian - 6.4.2008, 19:35 |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |