Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > О RasEnumEntries...


Автор: sLim 18.2.2003, 06:00
Глюки с Ras:

В Windows 9x я спокойно получаю имена всех соединений с помощью RasEnumEntries, но в NT\XP вместо имен соединений RasEnumEntries дает пустые строки нулевой длины.

В чем причина?
withstupid.gif

Автор: stab 18.2.2003, 13:52
bool DoEnum()
{
LPRASENTRYNAME lpRasEntryName = (LPRASENTRYNAME) GlobalAlloc(GPTR, sizeof(RASENTRYNAME));
lpRasEntryName->dwSize = sizeof(RASENTRYNAME);
int nRet;
DWORD cb = sizeof(RASENTRYNAME), cEntries;
if ((nRet = RasEnumEntries(NULL, NULL, lpRasEntryName, &cb, &cEntries)) == ERROR_BUFFER_TOO_SMALL)
{
lpRasEntryName = (LPRASENTRYNAME)GlobalAlloc(GPTR, cb);
lpRasEntryName->dwSize = sizeof(RASENTRYNAME);
}

nRet = RasEnumEntries(NULL, NULL, lpRasEntryName, &cb, &cEntries);
if (nRet != ERROR_SUCCESS)
{
return FALSE;
}
else
{
for(DWORD i = 0; i < cEntries; i++)
{
MessageBox(hMainDlg, lpRasEntryName->szEntryName, NULL, MB_OK);
lpRasEntryName++;
}
}

return TRUE;
}


у мя все работает и под 9х и НТ

Автор: stab 18.2.2003, 13:55
пока в старом коде рылся нашел ошибку, правельнее так:

bool DoEnum()
{
LPRASENTRYNAME lpRasEntryName = (LPRASENTRYNAME) GlobalAlloc(GPTR, sizeof(RASENTRYNAME));
LPRASENTRYNAME back;
lpRasEntryName->dwSize = sizeof(RASENTRYNAME);
int nRet;
DWORD cb = sizeof(RASENTRYNAME), cEntries;
if ((nRet = RasEnumEntries(NULL, NULL, lpRasEntryName, &cb, &cEntries)) == ERROR_BUFFER_TOO_SMALL)
{
lpRasEntryName = (LPRASENTRYNAME)GlobalAlloc(GPTR, cb);
lpRasEntryName->dwSize = sizeof(RASENTRYNAME);
}

nRet = RasEnumEntries(NULL, NULL, lpRasEntryName, &cb, &cEntries);
back = lpRasEntryName;
if (nRet != ERROR_SUCCESS)
{
GlobalFree(back);
return FALSE;
}
else
{
for(DWORD i = 0; i < cEntries; i++)
{

MessageBox(hMainDlg, lpRasEntryName->szEntryName, NULL, MB_OK);
lpRasEntryName++;
}
}

GlobalFree(back);
return TRUE;

}

Автор: sLim 20.2.2003, 04:47
BiG thanx!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)