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