RasDial(), ошибка 87
От: NVGNVG  
Дата: 26.09.07 07:08
Оценка:
Приведенный ниже код (C++Builder 5) отлично работает на 5 компьютерах, но на 2 других компьютерах вызов RasDial() выдает недокументированную(?) ошибку с кодом 87. Везде стоит W2K SP2 или SP4. Код не один раз сверен с документацией. Подскажите, пожалуйста, в какую сторону копать.

   RASDIALPARAMS rdp = {0};
   rdp.dwSize = sizeof(rdp);
   lstrcpy(rdp.szEntryName,  "");
   lstrcpyn(rdp.szPhoneNumber, edPhoneNumber->Text.c_str(), RAS_MaxPhoneNumber + 1);
   lstrcpy(rdp.szCallbackNumber, "");
   lstrcpyn(rdp.szUserName, edUserName->Text.c_str(), UNLEN + 1);
   lstrcpyn(rdp.szPassword, edPassword->Text.c_str(), PWLEN + 1);
   lstrcpy(rdp.szDomain, "");
   rdp.dwSubEntry = 0;
   rdp.dwCallbackId = 0;

   HRASCONN RASConnId = 0;
   Log("Начинаем звонить, телефон: " + edPhoneNumber->Text);
   DWORD RASDialResult = RasDial(NULL, NULL, &rdp, 0, NULL, &RASConnId); //ЗДЕСЬ ВЫЗОВ ЗАВЕРШАЕТСЯ С ОШИБКОЙ 87
   if (RASDialResult) {
    Log("Не удалось установить дозвон, код ошибки: " + IntToStr(RASDialResult));
    RasHangUp(RASConnId);
   }
   else {
    Log("Дозвон установлен");
   }
Re: RasDial(), ошибка 87
От: Demetry  
Дата: 26.09.07 08:21
Оценка:
Здравствуйте, NVGNVG, Вы писали:

NVG>Приведенный ниже код (C++Builder 5) отлично работает на 5 компьютерах, но на 2 других компьютерах вызов RasDial() выдает недокументированную(?) ошибку с кодом 87. Везде стоит W2K SP2 или SP4. Код не один раз сверен с документацией. Подскажите, пожалуйста, в какую сторону копать.


MSDN > error codes [Win32] > System Error Codes (0-499):
ERROR_INVALID_PARAMETER
87 The parameter is incorrect.

Копать в сторону RASConnId и rdp. В RASConnId, очевидно, ловить нечего. Не заполнена rdp?
Re: RasDial(), ошибка 87
От: FoolS.Top Армения  
Дата: 26.09.07 08:33
Оценка:
Здравствуйте, NVGNVG, Вы писали:

NVG>Приведенный ниже код (C++Builder 5) отлично работает на 5 компьютерах, но на 2 других компьютерах вызов RasDial() выдает недокументированную(?) ошибку с кодом 87. Везде стоит W2K SP2 или SP4. Код не один раз сверен с документацией. Подскажите, пожалуйста, в какую сторону копать.


Уточните на каких именно работает, там где SP4? А может Log что-то портить?
Feierlich, misterioso
Re[2]: RasDial(), ошибка 87
От: NVGNVG  
Дата: 26.09.07 08:53
Оценка:
Здравствуйте, Demetry, Вы писали:

D>Здравствуйте, NVGNVG, Вы писали:


NVG>>Приведенный ниже код (C++Builder 5) отлично работает на 5 компьютерах, но на 2 других компьютерах вызов RasDial() выдает недокументированную(?) ошибку с кодом 87. Везде стоит W2K SP2 или SP4. Код не один раз сверен с документацией. Подскажите, пожалуйста, в какую сторону копать.


D>MSDN > error codes [Win32] > System Error Codes (0-499):

D>ERROR_INVALID_PARAMETER
D>87 The parameter is incorrect.

Да, это я знаю.

D>Копать в сторону RASConnId и rdp. В RASConnId, очевидно, ловить нечего. Не заполнена rdp?


Заполнение всех полей rdp есть в приведенном коде.
Повторюсь, это же приложение работает без ошибок на других компах. Есть подозрение (ничем не обоснованное, правда), что ошибка проявляется на моторолловских софт-модемах. Но, на этих же модемах обычный, "ручной" дозвон выполняется без ошибок. Т.е., опять же, ошибка в коде? Но где?
Re[2]: RasDial(), ошибка 87
От: NVGNVG  
Дата: 26.09.07 09:00
Оценка:
Здравствуйте, FoolS.Top, Вы писали:

NVG>>Приведенный ниже код (C++Builder 5) отлично работает на 5 компьютерах, но на 2 других компьютерах вызов RasDial() выдает недокументированную(?) ошибку с кодом 87. Везде стоит W2K SP2 или SP4. Код не один раз сверен с документацией. Подскажите, пожалуйста, в какую сторону копать.


FT>Уточните на каких именно работает, там где SP4? А может Log что-то портить?


Вперемешку. SP2 и SP4 и на тех, что работают и на тех, что НЕ работают.

Ф-ция Log просто добавляет строчку в TMemo.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.