RAS & win2k & winXP
memset(&rasEntry, 0, sizeof(RASENTRY));
rasEntry.dwSize = sizeof(rasEntry);
rasEntry.dwfOptions = RASEO_PreviewUserPw | RASEO_ShowDialingProgress | RASEO_Custom | RASEO_RequireMsCHAP2;
rasEntry.dwfOptions2=RASEO2_DisableNbtOverIP | RASEO2_ReconnectIfDropped | RASEO2_Internet;
rasEntry.dwRedialCount=99999;
rasEntry.dwRedialPause=3;
rasEntry.dwEncryptionType=ET_Optional;
rasEntry.dwType=RASET_Vpn;
strcpy(rasEntry.szLocalPhoneNumber, TEXT("ADRES"));
strcpy(rasEntry.szDeviceType, RASDT_Vpn);
strcpy(rasEntry.szDeviceName, TEXT("VPN"));
if (RasSetEntryProperties(NULL, TEXT("VPN"), &rasEntry, sizeof(rasEntry), NULL, 0))
{
MessageBox(0,"RasSetEntryProperties failed", 0,0);
}
else MessageBox(0,"Ok","Ok",0);
Создает VPN подключение. Код правильный, компилится и замечательно работает в ХР. Пытаемся запустить в 2000 - выдает ошибку создания подключения даже на админских правах.
Сокмпилирован в ХР. Может если его пересобрать в 2000 то будет работать? Сейчас не могу проверить, если кто может, то проверьте, хочется пораньше узнать результат - дома нужно еще 2000 будет ставить.
Или тут какая-то особенность для 2000? Если да, то какая?
Или тут какая-то особенность для 2000? Если да, то какая?
По-моему, в MSDN для каждой функции написано, в какой версии Windows как конкретно она работает.
Если так уж сильно не веришь Майкрософту, посмотри, какие фукнции из каких библиотек импортирует собранная прога. В 2000-й проблемы чаще всего бывают, если в VC7 программа собрана с 7-мыми версиями библиотек компилятора, вроде msvcrt70.dll.
Проблема вроде бы снята. Не заметил, что в 2000 нет пункта "Отключить NetBIOS через TCP/IP" в настройках протокола. Правда пока еще не проверил :)
Вот действительно - поторопился с выводами. Ни как не могу заставить RasSetEntryProperties работать в win2k! Не понимаю в чем дело - какие только опции не отключал. Не работает и все!
Хотя на http://msdn.microsoft.com написано следующее:
Requires Windows "Longhorn", Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, or Windows 95 OSR2 and later.
В чем дело? Во всех ХР, в которых проверял - работает на ура, в 2003 - тоже на ура. А в 2000 - ни как. Собирал в 2000-ной.
Rasapi32.dll 2000-ной на ХР-шную заменить что ли? :)
Вот действительно - поторопился с выводами. Ни как не могу заставить RasSetEntryProperties работать в win2k! Не понимаю в чем дело - какие только опции не отключал. Не работает и все!
Хотя на http://msdn.microsoft.com написано следующее:
Requires Windows "Longhorn", Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, or Windows 95 OSR2 and later.
В чем дело? Во всех ХР, в которых проверял - работает на ура, в 2003 - тоже на ура. А в 2000 - ни как. Собирал в 2000-ной.
Rasapi32.dll 2000-ной на ХР-шную заменить что ли? :)
А может в 2000 как-нить настроены параметры безопасности, что они тебе мешаю менять свойства подключения?
А может в 2000 как-нить настроены параметры безопасности, что они тебе мешаю менять свойства подключения?
Ручками же можно сделать, а программно почему-то не получается. Тем более, что права админа. Безопасность из опций создаваемого подключения я вообще выкидывал. Не то.
ЗЫ Выяснил, что все же интерпретируется - есть файл raserror.h, только почему-то про него ни где не указано. Нашел: ERROR_INVALID_SIZE. И что за инвалидный размер? Ничего не понимаю - везде где нужно размер указан через sizeof! Скоро с ума сойду :)