Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Проблемы с RasGetEntryProperties 09.07.03 15:04 Число просмотров: 2361
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 09.07.03 15:11 Количество правок: 1
|
> Проблемы с RasGetEntryProperties. Когда функция вызывается > с нулевым буфером, то в пятом параметре возвращается размер > буфера. Ок!
DWORD RasGetEntryProperties(
LPTSTR lpszPhonebook, // pointer to full path and filename of phone-book file
LPTSTR lpszEntry, // pointer to an entry name
LPRASENTRY lpRasEntry, // buffer that receives entry information
LPDWORD lpdwEntryInfoSize, // size, in bytes, of the lpRasEntry buffer
LPBYTE lpbDeviceInfo, // buffer that receives device-specific configuration information
LPDWORD lpdwDeviceInfoSize // size, in bytes, of the lpbDeviceInfo buffer
);
---
В смысле, в четвёртом параметре?
> Если в свойствах подключения один телефонный номер, то с > выделенным буфером размером, указанным выше, функция > работает правильно. Если в свойствах подключения несколько > телефонных номеров, то даже с выделенным буфером (см. выше) > функция возвращает ошибку 632 - размер буфера не > соответствует. Ну, может быть несколько причин. Ты во что инициализируешь lpRasEntry.dwSize ? Нужно не в то, что возвратил вызов RasGetEntryProperties, а в sizeof(RASENTRY) .
Лучше не обращать lpRasEntry в NULL при первом вызове, поскольку тогда Win2K считает, что ты заюзаешь самую крутую версию этой структуры, а это у тебя скорее всего не так. Ты сделай вот как. Выдели память под твой lpRasEntry, выстави поле dwSize как я сказал выше. Вызови первый раз. Если ошибку малого буфера получишь, то сделай ресайз буфера в который надо. Вызови RasGetEntryProperties второй раз.
Удачи.
|
<programming>
|
Проблемы с RasGetEntryProperties 09.07.03 12:47
Автор: blade Статус: Незарегистрированный пользователь
|
Проблемы с RasGetEntryProperties. Когда функция вызывается с нулевым буфером, то в пятом параметре возвращается размер буфера. Ок!
Если в свойствах подключения один телефонный номер, то с выделенным буфером размером, указанным выше, функция работает правильно. Если в свойствах подключения несколько телефонных номеров, то даже с выделенным буфером (см. выше) функция возвращает ошибку 632 - размер буфера не соответствует.
Блин.
Кто-нибудь сталкивался с такой проблемой? Как ее решить.
PS, на NT все работает нормально, на 2000 SP3 - такая чехарда
|
|
попробуй поставить #define winver 0x400 перед #include "ras.h" 09.07.03 15:39
Автор: Killer{R} <Dmitry> Статус: Elderman
|
|
| |
Большое спасибо, все заработало 09.07.03 16:08
Автор: blade Статус: Незарегистрированный пользователь
|
Большое СПАСИБО, все заработало
Блин, чтож про это нигде не паписано!?
|
|
Проблемы с RasGetEntryProperties 09.07.03 15:04
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 09.07.03 15:11 Количество правок: 1
|
> Проблемы с RasGetEntryProperties. Когда функция вызывается > с нулевым буфером, то в пятом параметре возвращается размер > буфера. Ок!
DWORD RasGetEntryProperties(
LPTSTR lpszPhonebook, // pointer to full path and filename of phone-book file
LPTSTR lpszEntry, // pointer to an entry name
LPRASENTRY lpRasEntry, // buffer that receives entry information
LPDWORD lpdwEntryInfoSize, // size, in bytes, of the lpRasEntry buffer
LPBYTE lpbDeviceInfo, // buffer that receives device-specific configuration information
LPDWORD lpdwDeviceInfoSize // size, in bytes, of the lpbDeviceInfo buffer
);
---
В смысле, в четвёртом параметре?
> Если в свойствах подключения один телефонный номер, то с > выделенным буфером размером, указанным выше, функция > работает правильно. Если в свойствах подключения несколько > телефонных номеров, то даже с выделенным буфером (см. выше) > функция возвращает ошибку 632 - размер буфера не > соответствует. Ну, может быть несколько причин. Ты во что инициализируешь lpRasEntry.dwSize ? Нужно не в то, что возвратил вызов RasGetEntryProperties, а в sizeof(RASENTRY) .
Лучше не обращать lpRasEntry в NULL при первом вызове, поскольку тогда Win2K считает, что ты заюзаешь самую крутую версию этой структуры, а это у тебя скорее всего не так. Ты сделай вот как. Выдели память под твой lpRasEntry, выстави поле dwSize как я сказал выше. Вызови первый раз. Если ошибку малого буфера получишь, то сделай ресайз буфера в который надо. Вызови RasGetEntryProperties второй раз.
Удачи.
|
| |
sizeof(rasentry) не катит 09.07.03 16:06
Автор: blade Статус: Незарегистрированный пользователь
|
sizeof(RASENTRY) не катит, если его использовать сразу для буфера, то на подключения с одним телефонным номером функция возвращает ERROR_INVALID_SIZE, а на подключения со многими телефонными номерами - то, что было раньше 632.
|
|
|