程序在WinXP运行通过,但在WIN7失败!

时间:2020-12-05 03:59:25
int __fastcall TForm1::Create_L2TP_Connection(String sEntryName, String sServer,String sUsername,String sPassword)
{
String sDeviceName, sDeviceType;
RASENTRY re;
RASCREDENTIALS  rc;
sDeviceName = "WAN 微型端口 (PPTP)";
sDeviceType = "VPN";

DWORD dwEntrySize=0;
RasGetEntryProperties(NULL, NULL, NULL, &dwEntrySize, NULL, NULL);


ZeroMemory(&re,sizeof(re));
//re.dwSize =sizeof(re);
re.dwSize=dwEntrySize;
re.dwCountryCode = 86 ;
re.dwCountryID = 86  ;
    re.dwDialExtraPercent = 75;
re.dwDialExtraSampleSeconds = 120  ;
re.dwDialMode = 1 ;
    re.dwEncryptionType = 3 ;
re.dwfNetProtocols = 4 ;
re.dwfOptions = 1024262928-16;
re.dwfOptions2 = 367 ;
    re.dwFramingProtocol = 1 ;
re.dwHangUpExtraPercent = 10 ;
re.dwHangUpExtraSampleSeconds = 120 ;
    re.dwRedialCount = 3;
re.dwRedialPause = 60;
re.dwType = 5;
re.dwVpnStrategy=0;
re.dwEncryptionType = 3;
strcpy(re.szDeviceName,sDeviceName.t_str());
strcpy(re.szDeviceType,sDeviceType.t_str());
strcpy(re.szLocalPhoneNumber,sServer.t_str());

//RASCREDENTIALS  rc;

    ZeroMemory(&rc,sizeof(RASCREDENTIALS));
rc.dwSize =  sizeof(RASCREDENTIALS);
rc.dwMask = 11;

strncpy(rc.szUserName,sUsername.t_str(),sUsername.Length());
strncpy(rc.szPassword,sPassword.t_str(),sPassword.Length());

int rsep=RasSetEntryProperties(NULL,sEntryName.t_str(),&re,dwEntrySize,0,0);
if(rsep==0)
{
int rsc=RasSetCredentials(NULL,sEntryName.t_str(),&rc,0);
if(rsc==0)
{
return 0;  //成功返回0
}
else
{

Application->MessageBoxA(L"RasSetCredentials失败!",L"信息",64);
return rsc;
}
}
else
{
Application->MessageBoxA(L"RasSetEntryProperties过程失败!",L"信息",64);
return rsep;
}

}
//----------------------------
提示:RasSetCredentials函数调用 失败!请高手支持啊!谢谢!
我在win7中右键以管理员身份运行也失败!
之前老妖支持说有可能是UAC。但是若是以管理员身份都不能运行,估计应该不是这个原因吧?

4 个解决方案

#1


程序在WinXP运行通过,但在WIN7失败!用RasSetCredentialsW (Unicode)或RasSetCredentialsA (ANSI)试一下.

#2


我用RasSetCredentialsW (Unicode)编译了,还是不行。报错。

#3


错误返回码:623,是第一个参数不对,MSDN上说是Cannot find the specified phone book entry.
我将远程网关IP地址变量填入,还是报错。但MSDN上却说可以为NULL。
请问这个phone book如何写?

#4


MSDN说明:http://msdn.microsoft.com/en-us/library/aa377811(VS.85).aspx

#1


程序在WinXP运行通过,但在WIN7失败!用RasSetCredentialsW (Unicode)或RasSetCredentialsA (ANSI)试一下.

#2


我用RasSetCredentialsW (Unicode)编译了,还是不行。报错。

#3


错误返回码:623,是第一个参数不对,MSDN上说是Cannot find the specified phone book entry.
我将远程网关IP地址变量填入,还是报错。但MSDN上却说可以为NULL。
请问这个phone book如何写?

#4


MSDN说明:http://msdn.microsoft.com/en-us/library/aa377811(VS.85).aspx