Сначала создайте пример VPN-подключения из Свойства обозревателя - для этого необходимо иметь файл pbk в %userprofile%\AppData\Roaming\Microsoft\Network\Connections\PBK
. Затем рассмотрите этот пример кода:
#include <Windows.h>
#include <ras.h>
main()
{
BOOL noCare;
HRASCONN conn=NULL;
RASCONNSTATUS status={.dwSize=sizeof status};
RASDIALPARAMS params={.dwSize=sizeof params,.szEntryName="VPN Connection"};
RasGetEntryDialParamsA(NULL,¶ms,&noCare);
while(true)
if(RasGetConnectStatusA(conn,&status)!=ERROR_INVALID_HANDLE)
do
RasHangUpA(conn),Sleep(0);
while(RasGetConnectStatusA(conn,&status)!=ERROR_INVALID_HANDLE);
else RasDialA(NULL,NULL,¶ms,0,NULL,&conn);
}
Первый раз вызов всегда будет успешным, если вы правильно настроили VPN, однако второй вызов и любые последующие вызовы всегда завершаются неудачно с ERROR_NO_CONNECTION
.
Есть идеи почему?