我的机器是通过ADSL上网的,我想了解怎样
写拨号上网代码?有资料吗?

解决方案 »

  1.   

    RAS函数
    http://www.pudn.com/downloads148/sourcecode/multimedia/ip_phone/detail641221.html
      

  2.   

    我不能下载,有没有发给我一份?(网络上都是Delphi,我要的是C),我的地址:
    [email protected]
      

  3.   

    void CDialerDlg::OnOK() 
    {
    // TODO: Add extra validation here
    UpdateData(); GetDlgItem(IDOK)->EnableWindow(FALSE);
    GetDlgItem(IDC_COMBO_CONNECT_ENTRIES)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_USERNAME)->EnableWindow(FALSE);
    GetDlgItem(IDC_EDIT_PASSWORD)->EnableWindow(FALSE);

    TCHAR lpszEntry[256];
    GetDlgItemText(IDC_COMBO_CONNECT_ENTRIES, lpszEntry, 255); RASDIALPARAMS RasDialParams;
    RasDialParams.dwSize = sizeof(RASDIALPARAMS); lstrcpy(RasDialParams.szEntryName, lpszEntry);
    lstrcpy(RasDialParams.szPhoneNumber, _T(""));
    lstrcpy(RasDialParams.szCallbackNumber, _T(""));
    GetDlgItemText(IDC_EDIT_USERNAME,RasDialParams.szUserName,UNLEN);
    GetDlgItemText(IDC_EDIT_PASSWORD,RasDialParams.szPassword, PWLEN); hRasConn = NULL;
    DWORD dwRet = RasDial(NULL, NULL, &RasDialParams, 0L, (RASDIALFUNC)RasDialFunc, &hRasConn);
    if(dwRet)
    {
    CString szMsg;
    if(RasGetErrorString((UINT)dwRet, szMsg.GetBuffer(256),256)!=0)
    {
    szMsg.ReleaseBuffer();
    szMsg.Format("未知的远程访问错误,错误代码为:%ld.",dwRet);
    }
    else
    szMsg.ReleaseBuffer(); CString buf;
    buf.Format("错误代码为:%ld.",dwRet); szMsg += buf;        MessageBox(szMsg,"拨号失败",MB_OK|MB_ICONSTOP);
    hRasConn = NULL;
    //CDialog::OnCancel();
    GetDlgItem(IDOK)->EnableWindow();
    GetDlgItem(IDC_COMBO_CONNECT_ENTRIES)->EnableWindow();
    GetDlgItem(IDC_EDIT_USERNAME)->EnableWindow();
    GetDlgItem(IDC_EDIT_PASSWORD)->EnableWindow();
    SetDlgItemText(IDC_STATIC_STATUS,"未连接,空闲");
    }
    }LRESULT CDialerDlg::OnRasDialEvent(WPARAM wparam, LPARAM lparam)
    {
    CString szMsg;
    CString buf; LoadString(AfxGetInstanceHandle(),GetRasConnState((RASCONNSTATE)wparam),buf.GetBuffer(256),256);
    szMsg.ReleaseBuffer(); SetDlgItemText(IDC_STATIC_STATUS,"");
    SetDlgItemText(IDC_STATIC_STATUS,buf); if(lparam) //错现错误
        {
    if(RasGetErrorString((UINT)lparam, szMsg.GetBuffer(256),256)!=0)
    {
    szMsg.ReleaseBuffer();
    szMsg.Format("未知的远程访问错误,");
    }
    else
    szMsg.ReleaseBuffer(); //szMsg = buf + "\n" + szMsg;
    buf.Format("错误代码为:%ld.",lparam); szMsg += buf;        MessageBox(szMsg,"拨号失败",MB_OK|MB_ICONSTOP);
    RasHangUp( hRasConn );
    hRasConn = NULL;
    //CDialog::OnCancel();
    GetDlgItem(IDOK)->EnableWindow();
    GetDlgItem(IDC_COMBO_CONNECT_ENTRIES)->EnableWindow();
    GetDlgItem(IDC_EDIT_USERNAME)->EnableWindow();
    GetDlgItem(IDC_EDIT_PASSWORD)->EnableWindow();
    SetDlgItemText(IDC_STATIC_STATUS,"未连接,空闲");
        }                                                                                                               
        else 
    if(RASCS_DONE&wparam) //拨号连接成功
    {
    //AfxMessageBox("拨号连接成功",MB_OK|MB_ICONINFORMATION);
    CDialog::OnOK();          // 关闭对话框
    } return (LRESULT)0;
    }