VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
在应用程序中实现RAS拨号

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

在应用程序中实现RAS拨号
                                                 王涛

    远程访问服务(RAS)是Windows NT操作系统提供的系统服务之一,
通过电话线可以使单独的计算机接入网络,或通过两个RAS对拨使两个
局域网互连。此项服务的功能可以使远程的计算机端点以较低的费用
同网络连接。
    由于Windows NT操作系统的大量使用,远程访问服务功能也被广
泛应用,在许多具体的应用程序中,均已通过远程访问服务来实现对远
程的资源共享等功能。连通远程访问服务,只要从远程客户机拨通拨
号网络就可以了,执行挂断就结束连接,鼠标操作Windows 9 5中的拨
号网络可以直接拨通和挂断。但有些时候我们希望在应用程序中RAS
拨号和挂断对用户不可见,那么就需要相应的程序控制来实现RAS拨通
和挂断。
    Windows 95提供了API函数RasDial,调用系统中建好的拨号网络
连接,完成RAS拨号, 同时还提供了API函数RasHangUp断开连接。RasD
ial的原形如下:
    DWORD RasDial(LPRASDIALEXTENSIONS IpRasDialExtensions,LP
TSTR IpszPhonebo ok,LPRASDIALPARAMS IpRasDialParams,DWORD dw
NotifierType,LPVOID IpvNotifier,L PHRASCONN IphRasConn)
    此函数的第3个参数为指向RASDIALPARAMS型结构体的指针,它提
供了配置RAS拨号的参数;第5个参数为拨号完成后执行的回调函数;第
6个参数是LPHRASCONN型的指针,拨号连接建立好之后将返回此连接的
句柄;其他3个参数为NULL即可。函数调用如果成功将返回零,否则返
回错误代码,此错误代码的含义可以在头文件Raserror.h中查到。
    RASDIALPARAMS型结构体包含7个数据成员:dwSize、szEntryName
、szPhoneNumber、szCallbackNumber、szUserName、szPassword和s
zDomain,它们的作用如右表所示。
    要挂断已拨通的连接使用RasHangUp函数,需要的参数是此连接的
连接句柄。下面介绍使用VC完成RAS拨号的一个例子,其中我们假设RA
S端NT服务器连接的内部分机的电话号码是"22",具体步骤如下:
    1. 配置好调制解调器,然后在Windows 95的拨号网络中建立一个
名为dial的连接。
    2. 建立一个Visual C的应用框架,在Setting中为应用程序加入R
asapi32.lib静态库。
    3. 新建一个对话框,在其上加两个按钮,一个用于拨通,一个用于
挂断。
    4. 在鼠标点击拨通按钮的响应函数中加入以下代码:
    RASDIALPARAMS rdParams;
    DWORD dwRet;
    rdParams.dwSize=sizeof(RASDIALPARAMS);
    strcpy(rdParams.szEntryName,"dial");
    strcpy(rdParams.szPhoneNumber,"22");
    strcpy(rdParams.szCallbackNumber,"*");
    strcpy(rdParams.szUserName,"dial");
    rdParams.szPassword='\0';
    strcpy(rdParams.szDomain,"dial");
    hRasConn=NULL;
    dwRet=RasDial(NULL,NULL,&rdParams,0L,(RASDIALFUNC)RasDia
lFunc,&hRasConn)
    if(dwRet!=0){
    //deal with error…
    }
    5. 在此响应函数之前加入如下代码:
    VOID WINAPI RasDialFunc(UINT
    unMsg,RASCONNSTATE rasconnstate,DWORD dwError)
    {
    }
    6. 在鼠标点击挂断按钮的响应函数中加入如下代码:
    DWORD dwRet;
    dwRet= RasHangUp(hRasConn);
    7. 最后编译执行程序。
表1 RASDIALPARAMS型结构体数据成员表
    (作者地址:[email protected])
  




相关文章

相关软件