Компьютерный форум

Компьютерный форум (http://www.hardforum.ru/)
-   C++ Builder (http://www.hardforum.ru/f137/)
-   -   После первого вызова RasEnumEntries в переменной dwResult оказывается значение ERROR (http://www.hardforum.ru/t48596/)

Srpj 26.09.2003 13:38

После первого вызова RasEnumEntries в переменной dwResult оказывается значение ERROR
 
Может быть, вопрос и дурацкий, но он возник...

Как-то раз перевёл код из темы "Подключение к интернету" в разделе 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.
Подскажите, в чём проблема?

Srpj 26.09.2003 13:38

После первого вызова RasEnumEntries в переменной dwResult оказывается значение ERROR
 
Может быть, вопрос и дурацкий, но он возник...

Как-то раз перевёл код из темы "Подключение к интернету" в разделе 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.
Подскажите, в чём проблема?


Часовой пояс GMT +4, время: 22:22.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.