проблема с использованием rasdial
От: crystal  
Дата: 11.11.03 07:38
Оценка:
моя программа использует API RasDial для установки соединения с инетом при необходимости. и так получается, что установленное ей соединение никак не реагирует на попытки интерактивно им управлять (ну допустим пользователь хочет его разорвать вручную). так и должно быть или я что-то не допонимаю? ОС Win2000.
Re: проблема с использованием rasdial
От: TarvoAlex  
Дата: 11.11.03 08:05
Оценка:
Здравствуйте, crystal, Вы писали:

C>моя программа использует API RasDial для установки соединения с инетом при необходимости. и так получается, что установленное ей соединение никак не реагирует на попытки интерактивно им управлять (ну допустим пользователь хочет его разорвать вручную). так и должно быть или я что-то не допонимаю? ОС Win2000.


Нет, не должно быть. Я все собирался накатать статью по теме, но времени никак нет...
Возможностей — куча.
1. RAS — мутная фигня, там много зависит от версий этого самого RASa и, соответственно, от размера управляющих структур. Ошибся с размером структуры — тут можно и Access Vioation схлопотать, а не просто невозможность управления моединением.
2. Зависит иногда от метода управления соединением. Как Вы его подымаете? сообщения о статусе соединения идут окну, CallBack-функции или их нет вообще (соединение подымается в синхронном режиме)?
3. При использовании RAS часто надо таймауты соблюдать. Это медленная операция. Советую, к примеру, писать так:
dwError=RasHangUp(ghrasconn);
Sleep(3000);

а вообще — надо по кодц смотреть. Запостите код, может там что найти можно.
Re[2]: проблема с использованием rasdial
От: crystal  
Дата: 11.11.03 08:19
Оценка:
Здравствуйте, TarvoAlex, Вы писали:

TA>1. RAS — мутная фигня, там много зависит от версий этого самого RASa и, соответственно, от размера управляющих структур. Ошибся с размером структуры — тут можно и Access Vioation схлопотать, а не просто невозможность управления моединением.


Access Violation не случалось, но я обращу на этот факт внимание.

TA>2. Зависит иногда от метода управления соединением. Как Вы его подымаете? сообщения о статусе соединения идут окну, CallBack-функции или их нет вообще (соединение подымается в синхронном режиме)?


я ее использую в синхронном режиме. здесь есть какие-то особенности?

TA>3. При использовании RAS часто надо таймауты соблюдать. Это медленная операция. Советую, к примеру, писать так:

TA> dwError=RasHangUp(ghrasconn);
TA> Sleep(3000);

про это начитан, но в моем случае программа вообще не уполномочена соединение разрывать, поэтому эта функция вообще в коде не присутствует.

TA>а вообще — надо по кодц смотреть. Запостите код, может там что найти можно.


эх, не могу к сожалению в данный момент, исходники сейчас далеко от меня.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.