|
WINCE 下创建网络链接---RasSetEntryProperties 如何设置参数 急!希望大侠们帮忙啊。。。分数不够还可以再加
[复制链接]
RasSetEntryProperties 该函数有两个参数我不太懂得设置,一个是LPCTSTR lpszEntry 还有一个是LPBYTE lpbDeviceInfo;
1.lpszEntry 里面的那些参数应该如何设置?
2.lpbDeviceInfo 用传说中的typedef struct { //Offset
unsigned short Reserved1; // 0x00, 通常为0x20
unsigned short WaitForCreditCard; // 0x02
unsigned short CancelTimeOut; // 0x04
unsigned short Reserved2; // 0x06
unsigned char Test1; // 0x08
unsigned char Test2; // 0x09
unsigned short Reserved3; // 0x0A
unsigned int BaudRate; // 0x0C
unsigned short Terminal; // 0x10, 通常为0, 1, 3, 7
unsigned char DataBits; // 0x12
unsigned char StopBits; // 0x13
unsigned char Parity; // 0x14
unsigned char FlowControl; // 0x15
TCHAR AtCmd[115]; // 0x16, 可能后面还有别的结构,但我尝试几次都没有看到后面有有效值,因此笼统定义为附加指令
} sDevConfig;
去设置,在WINCE下没有反应,rasdial也是失败,返回608错误,这是我的代码:
RASENTRY rasEntry;
DWORD dw;
RASDIALPARAMS rdParams;//拨号参数
BOOL flag;
//初始化拨号参数
memset (&rasEntry, 0, sizeof(RASENTRY));
rdParams.dwSize=sizeof(RASDIALPARAMSW);
if(RasValidateEntryName(NULL, L"GPRST")!=ERROR_SUCCESS)
{
RasGetEntryProperties(NULL,L"GPRST",&rasEntry,&dw,NULL,NULL);
}
// rasEntry Num values
rasEntry.dwSize = sizeof (RASENTRY);
rasEntry.dwfOptions = 4194304;
// rasEntry.dwAlternateOffset = 0;
// rasEntry.dwCountryID = 86;//china
rasEntry.dwCountryCode = 86;//china
// rasEntry.dwFrameSize = 0;
rasEntry.dwfNetProtocols = RASNP_Ip; // TCP/IP
rasEntry.dwFramingProtocol = RASFP_Ppp; //PPP
wcscpy (rasEntry.szAreaCode, L"10");
wcscpy (rasEntry.szLocalPhoneNumber, L"*99***1#");
wcscpy(rdParams.szEntryName,L"GPRST");
//拨号连接
byte lpb[512] ;
memset(lpb,0,sizeof(lpb));
lpb[0] = 180;
lpb[1] = 1;
lpb[4] = 180;
lpb[5] = 1;
lpb[8] = 180;
lpb[9] = 1;
lpb[12] = 1;
lpb[16] = 15;
lpb[20] = 1;
lpb[24] = 2;
lpb[76] = 1;
lpb[80] = 2;
lpb[84] = 2;
TCHAR apn[] = L"cmnet";
for (int i = 0, step = 0; i < wcslen(apn); i++, step += 2)
{
*(lpb + 88 + step)=(BYTE)*(apn+i);
}
lpb[344] = 1;
lpb[348] = 1;
if(!RasSetEntryProperties(NULL,L"GPRST",&rasEntry,sizeof(RASENTRY),lpb,sizeof(lpb)))
AfxMessageBox(L"Set ok!");
else
AfxMessageBox(L"Set failed!");
RasSetEntryDialParams (NULL, &rdParams, FALSE);
dwRet = RasDial(NULL,NULL,&rdParams,0xFFFFFFFF,m_hWnd ,&hRasConn);
|
|