在MSDN里找Ras开头的函数,下面是一段我写的VC程序,用的是异步方式
bool CDialUp::Dial()
{
CString strError;
RASDIALPARAMS struDialParams;
LPRASENTRYNAME pEntryName=new RASENTRYNAME[5];
DWORD dwCb,dwCount;
BOOL bPassword;
int nErrorTimes;
if(IsConnect()==true)
{
if(pEntryName)
delete[] pEntryName;
return true;
}
HangUp();
dwCb=sizeof(RASENTRYNAME)*5;
pEntryName[0].dwSize=sizeof(RASENTRYNAME);
dwCount=5;
m_nLastError=RasEnumEntries(NULL,NULL,pEntryName,&dwCb,&dwCount);
if(m_nLastError!=0)
{
if(pEntryName)
delete[] pEntryName;
pEntryName=new RASENTRYNAME[dwCount];
dwCb=sizeof(RASENTRYNAME)*dwCount;
m_nLastError=RasEnumEntries(NULL,NULL,pEntryName,&dwCb,&dwCount);
}
if(m_nLastError!=0)
{
if(pEntryName)
delete[] pEntryName;
return false;
}
strcpy(struDialParams.szEntryName,pEntryName[0].szEntryName);
struDialParams.dwSize=sizeof(RASDIALPARAMS);
if((m_nLastError=RasGetEntryDialParams(NULL,&struDialParams,&bPassword))!=0)
{
if(pEntryName)
delete[] pEntryName;
return false;
}
nErrorTimes=0;
RasDial(NULL,NULL,&struDialParams,0,RasDialFunc,&m_hConn);
if(pEntryName)
delete[] pEntryName;
return false;
}
bool CDialUp::Dial()
{
CString strError;
RASDIALPARAMS struDialParams;
LPRASENTRYNAME pEntryName=new RASENTRYNAME[5];
DWORD dwCb,dwCount;
BOOL bPassword;
int nErrorTimes;
if(IsConnect()==true)
{
if(pEntryName)
delete[] pEntryName;
return true;
}
HangUp();
dwCb=sizeof(RASENTRYNAME)*5;
pEntryName[0].dwSize=sizeof(RASENTRYNAME);
dwCount=5;
m_nLastError=RasEnumEntries(NULL,NULL,pEntryName,&dwCb,&dwCount);
if(m_nLastError!=0)
{
if(pEntryName)
delete[] pEntryName;
pEntryName=new RASENTRYNAME[dwCount];
dwCb=sizeof(RASENTRYNAME)*dwCount;
m_nLastError=RasEnumEntries(NULL,NULL,pEntryName,&dwCb,&dwCount);
}
if(m_nLastError!=0)
{
if(pEntryName)
delete[] pEntryName;
return false;
}
strcpy(struDialParams.szEntryName,pEntryName[0].szEntryName);
struDialParams.dwSize=sizeof(RASDIALPARAMS);
if((m_nLastError=RasGetEntryDialParams(NULL,&struDialParams,&bPassword))!=0)
{
if(pEntryName)
delete[] pEntryName;
return false;
}
nErrorTimes=0;
RasDial(NULL,NULL,&struDialParams,0,RasDialFunc,&m_hConn);
if(pEntryName)
delete[] pEntryName;
return false;
}
RasEnumConnections用于得到已有的连接(但不一定已经连上)
RasGetConnectStatus得到连接状态
RasHangUp用于挂断
RasEnum*函数很有用,自己再看看吧
拨号程序
再依葫芦画瓢