在定义HRASCONN hRasConn时必须将他初始化为NULL,不然就会有668错误
详细代码
#include
<
Windows.h
>
#include
<
WindowsX.h
>
#include
"
CmnHdr.h
"
#include
"
resource.h
"
#include
<
tchar.h
>
#include
<
RASERROR.H
>

#include
"
ras.h
"
#pragma
comment(lib,"rasapi32.lib")




/**/
//
void
Dial(HWND hwnd ,TCHAR szEntryName[])

...
{
HRASCONN hRasConn=0;//这个没有初始化就会失败!!!!!!!

RASDIALPARAMS RasDialParams; //用来指定电话本项目名
RasDialParams.dwSize = sizeof(RASDIALPARAMS);
_tcscpy(RasDialParams.szEntryName, szEntryName);//连接名称 宽带连接
_tcscpy(RasDialParams.szPhoneNumber, _T(""));
_tcscpy(RasDialParams.szCallbackNumber, _T(""));
_tcscpy(RasDialParams.szUserName, "jxk***");
_tcscpy(RasDialParams.szPassword, "***");
_tcscpy(RasDialParams.szDomain, _T(""));

DWORD dwRet=0;
dwRet= RasDial(NULL, NULL, &RasDialParams, 0xFFFFFFFF,NULL, &hRasConn); //668
if(dwRet !=0)
chMB("Fail!");



}


/**/
//
void
Main_OnCommand(HWND hwnd,
int
id, HWND hwndCtl, UINT codeNotify)

...
{
switch (id)

...{
case IDCANCEL:
EndDialog(hwnd, id);
break;
}
}

/**/
//
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)

...
{
DWORD dwRet,dwSize,dwEntries;
LPBYTE lpBuffer;
LPRASENTRYNAME lpRasEntryName = new RASENTRYNAME;
lpRasEntryName->dwSize = sizeof(RASENTRYNAME);
dwSize = sizeof(RASENTRYNAME);
dwRet = RasEnumEntries(NULL, NULL, lpRasEntryName, &dwSize, &dwEntries);
delete lpRasEntryName;
lpBuffer = new BYTE[dwSize];
lpRasEntryName = (LPRASENTRYNAME)lpBuffer;
lpRasEntryName->dwSize = sizeof(RASENTRYNAME);
dwRet = RasEnumEntries(NULL, NULL, lpRasEntryName, &dwSize, &dwEntries);
//比较连接名
for(DWORD i =0;i<dwEntries;lpRasEntryName++,i++)

...{
if(0==lstrcmp(lpRasEntryName->szEntryName,"宽带连接"))
Dial(hwnd,lpRasEntryName->szEntryName);
}
delete [] lpBuffer;
return(TRUE);
}


/**/
//
INT_PTR WINAPI Main_Proc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)

...
{
switch (uMsg)

...{
chHANDLE_DLGMSG(hDlg, WM_INITDIALOG, Main_OnInitDialog);
chHANDLE_DLGMSG(hDlg, WM_COMMAND, Main_OnCommand);
}
return(FALSE);
}



/**/
//
int
WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine,
int
)

...
{
DialogBox(hinstExe, MAKEINTRESOURCE(IDD_DIAL), NULL, Main_Proc);
return(0);
}
详细代码









































































































