C++ Rasdail API在windows vista和windows 7的版本中未连接

C++ Rasdail API在windows vista和windows 7的版本中未连接,c++,vpn,ras,C++,Vpn,Ras,我正在尝试在windows vista和windows 7上使用Rasdail API进行连接。我能够在windows XP系统上轻松完成这项工作 我无法仅在版本中连接windows vista和windows 7。我可以通过调试构建来实现这一点。知道为什么会这样吗?我已经写下了我使用的代码 我正在使用Aventail VPN 10.x API设置自定义身份验证数据 NGCUSTOMAUTHDATA NgAuthData; NgAuthData.d

我正在尝试在windows vista和windows 7上使用Rasdail API进行连接。我能够在windows XP系统上轻松完成这项工作

我无法仅在版本中连接windows vista和windows 7。我可以通过调试构建来实现这一点。知道为什么会这样吗?我已经写下了我使用的代码

我正在使用Aventail VPN 10.x API设置自定义身份验证数据

            NGCUSTOMAUTHDATA NgAuthData;
            NgAuthData.dwSize = sizeof(NgAuthData);
            NgAuthData.dwOptions = NGCAD_OPTION_DisableGUI;
            NgAuthData.dwAuthType = 2;

            DWORD returnError=StringCbCopy( NgAuthData.szRealm,sizeof(NgAuthData.szRealm), wstringGroupName.c_str());
            if (returnError != ERROR_SUCCESS){
                return error;
            }

            DWORD nError = RasSetCustomAuthData(
                pbkPath.c_str(),
                wstringProfile.c_str(),
                (BYTE *)&NgAuthData, NgAuthData.dwSize );

            // Fill RASDIALPARAMS structure
            RASDIALPARAMS rasdialparams; 
            rasdialparams.dwSize = sizeof(RASDIALPARAMS);

            returnError |= StringCbCopy( rasdialparams.szEntryName,
                sizeof(rasdialparams.szEntryName), wstringProfile.c_str() );
            returnError |= StringCbCopy( rasdialparams.szPhoneNumber,
                sizeof(rasdialparams.szPhoneNumber), wstringUrl.c_str() );
            returnError |= StringCbCopy( rasdialparams.szUserName,
                sizeof(rasdialparams.szUserName), wstringUser.c_str());
            returnError |= StringCbCopy( rasdialparams.szPassword,
                sizeof(rasdialparams.szPassword), wstringPassword.c_str() );
            returnError |= StringCbCopy( rasdialparams.szDomain,
                sizeof(rasdialparams.szDomain), wstringGroupName.c_str());
            returnError |= StringCbCopy( rasdialparams.szDomain,
                sizeof(rasdialparams.szDomain), L"\0");

            if (returnError != ERROR_SUCCESS){
                return error;
            }
大多数情况下,我不断收到内部身份验证错误。
请你告诉我这个问题好吗?

这是因为我没有初始化rasdialparams中的所有参数。此外,在使用ngauthdata之前,我们还需要将其掩码参数设置为相应的值