![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| sLim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.2.2003 Репутация: нет Всего: нет |
Глюки с Ras:
В Windows 9x я спокойно получаю имена всех соединений с помощью RasEnumEntries, но в NT\XP вместо имен соединений RasEnumEntries дает пустые строки нулевой длины. В чем причина? Это сообщение отредактировал(а) sLim - 18.2.2003, 06:00 |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
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х и НТ -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
пока в старом коде рылся нашел ошибку, правельнее так:
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; } -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| sLim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.2.2003 Репутация: нет Всего: нет |
BiG thanx!
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |