Форум — Ответы     (  К темам )
 ?  SCARFACE: RASEnumConnections и WIN98 (07-05-2003 13:18:18)
Help, please!!! Есть такой код:

const unsigned long MaxEnt = 100;
unsigned long BufSize;
unsigned long NumEntries;
unsigned long ErrCode;
RASCONN Entries[MaxEnt];
ZeroMemory(&Entries,sizeof(Entries)*MaxEnt);
Entries[0].dwSize = sizeof(RASCONN);
BufSize = sizeof(RASCONN)*MaxEnt;
ErrCode = RasEnumConnections(&Entries[0],&BufSize,&NumEntries);

Функция в Win98 возвращает ERROR_BUFFER_INVALID, хоть убей...
Подскажите, что делать, уж больно горит !!
 Andrew (08-05-2003 15:31:54)
У меня в W2K при отсутствии соединений все работае, а при наличии более одного -
ERROR_BUFFER_TOO_SMALL,
но если написать RasEnumConnections(Entries,&BufSize,&NumEntries) то опять все работает.

и в строке ZeroMemory наверное должно быть так: ZeroMemory(&Entries, sizeof(RASCONN)*MaxEnt) или переставив ее ниже строки BufSize = ...
можно получить ZeroMemory(&Entries, BufSize);
 Alex (08-05-2003 16:54:55)
const unsigned long MaxEnt = 100;
RASCONN rasconn[MaxEnt];

unsigned long BufSize;
unsigned long Connections;

BufSize = sizeof(RASCONN)*MaxEnt;
ZeroMemory(rasconn, BufSize);
rasconn[0].dwSize = sizeof(RASCONN);

int err = RasEnumConnections(&rasconn[0],&BufSize,&Connections);
if(err == 0){
ShowMessage("Connections: "+IntToStr(Connections));
for(int i=0; i<(int)Connections; i++){
ListBox1->Items->Add(AnsiString(rasconn[i].szEntryName));
}
}else ShowMessage("Error: "+IntToStr(err));