asutp2
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Для function RasGetEntryPropertiesW( lpszPhonebook: PWideChar; szEntry: PWideChar; lpbEntry: LPRasEntryW; var lpdwEntrySize: DWord; lpbDeviceInfo: Pointer; var lpdwDeviceInfoSize: DWord ): DWord; stdcall; вызываю вот таким образом: var IntlCode: DWord; IntlEntry: TRasEntryW; IntlEntrySize: DWord; IntlInfoSize: DWord; // инициализируем структуру работы с RAS API FillChar(IntlEntry, SizeOf(TRasEntryW), 0); IntlEntry.dwSize := SizeOf(TRasEntryW); IntlEntrySize := IntlEntry.dwSize; IntlInfoSize := 0; // определяем, существует ли подключение с необходимым именем try IntlCode := RasGetEntryPropertiesW(nil, PWideChar(AConnectionName), @IntlEntry, IntlEntrySize, nil, IntlInfoSize); except // ошибка IntlCode := ERROR_BUFFER_INVALID; end; // удалось получить данные? if IntlCode = SUCCESS then и этот код работает, меня смущает описание _inout_ в SDK, т.к. по идее нужно добавлять var в описание параметра функции ------------------------------------------------------- Второй вариант, который вызывает AV: function RasGetEntryPropertiesW( lpszPhonebook: PWideChar; szEntry: PWideChar; var lpbEntry: LPRasEntryW; var lpdwEntrySize: DWord; lpbDeviceInfo: Pointer; var lpdwDeviceInfoSize: DWord ): DWord; stdcall; вызываю вот так: var IntlCode: DWord; IntlLPEntry: LPRasEntryW; IntlEntry: TRasEntryW; IntlEntrySize: DWord; IntlInfoSize: DWord; // инициализируем структуру работы с RAS API FillChar(IntlEntry, SizeOf(TRasEntryW), 0); IntlEntry.dwSize := SizeOf(TRasEntryW); IntlEntrySize := IntlEntry.dwSize; IntlInfoSize := 0; // указатель на структуру IntlLPEntry := @IntlEntry; // определяем, существует ли подключение с необходимым именем try IntlCode := RasGetEntryPropertiesW(nil, PWideChar(AConnectionName), IntlLPEntry, IntlEntrySize, nil, IntlInfoSize); except // ошибка (сюда всегда попадаем по AV) IntlCode := ERROR_BUFFER_INVALID; end; // удалось получить данные? if IntlCode = SUCCESS then | Всего записей: 812 | Зарегистр. 22-10-2004 | Отправлено: 17:12 11-06-2015 | Исправлено: asutp2, 17:15 11-06-2015 |
|