Показать сообщение отдельно
  (#1 (permalink)) Старый
Srpj Srpj вне форума
Member
 
Сообщений: 100
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.08.2003
По умолчанию После первого вызова RasEnumEntries в переменной dwResult оказывается значение ERROR - 26.09.2003, 13:38

Может быть, вопрос и дурацкий, но он возник...

Как-то раз перевёл код из темы "Подключение к интернету" в разделе Delphi, на C++ (с небольшими изменениями).
В Win2k программа работала абсолютно нормально, а вот в WinME появились проблемы:

Код:
//Заполнение String всеми соединениями
void __fastcall TForm1::FillEntries(TStrings *s)
{
DWORD dwSize, dwEntriesCount, dwResult;

s->Clear();
s->BeginUpdate();

LPRASENTRYNAME EntriesArray = new RASENTRYNAME;
EntriesArray->dwSize = sizeof(RASENTRYNAME);
dwSize = sizeof(RASENTRYNAME);
dwResult = RasEnumEntries(NULL, NULL, EntriesArray, &dwSize, &dwEntriesCount);
if(dwResult == ERROR_BUFFER_TOO_SMALL)
  {
  delete EntriesArray;
  EntriesArray = new RASENTRYNAME[dwEntriesCount];
  EntriesArray[0].dwSize = sizeof(RASENTRYNAME);
  dwSize = sizeof(RASENTRYNAME)*dwEntriesCount;
  }

if(!RasEnumEntries(NULL, NULL, EntriesArray, &dwSize, &dwEntriesCount))
  for(int i=0; (DWORD)i<dwEntriesCount; ++i)
    s->Add(EntriesArray[i].szEntryName);

delete EntriesArray;
s->EndUpdate();
}
После первого вызова RasEnumEntries в переменной dwResult оказывается значение ERROR_BUFFER_INVALID.
Подскажите, в чём проблема?
Ответить с цитированием
Ads