用VC++6.0编写拨号程序 作者:陈晓东

VC++实现拨号连接的详细指南 应用程序编程接口(API)是一系列预先定义的函数、协议和工具,软件开发者可以使用这些预定义功能来创建软件应用程序。API定义了软件组件之间的交互和通信方式,提供了构建复杂软件系统的基石。在Windows环境中,API允许应用程序与操作系统进行交互,执行例如图形渲染、文件操作、设备输入输出等任务。在拨号连接的上下文中,API让开发者能够编写程序来建立、管理和终止网络连接。Windows为网络编程提供了广泛的API集合,使得开发者可以深入控制网络配置和管理。 阅读详情
用VC++6.0编写拨号程序 作者:陈晓东 发布时间:2001/05/22
 
文章摘要:
  本文利用visual c++6.0给出了一个拨号程序的实现,可以作为VC学习者编程实践的范例。
       

正文: 

用VC++6.0编写拨号程序   

  拨号上网是编写网络应用软件常用的操作,程序在运行某些远程网上操作前,需要先拨号与网络连接,完成操作后由必须收线断开。在Windows 95/98的"拨号网络"中,虽然提供拨号功能,但无法直接让自己开发的应用程序来调。而在系统注册的常用的控件当中又没有提供。
  本方法是利用VC++制作一个拨号控件,提供拨号与收线功能。VC++ 6.00提供控件的创建引导(MFC ActiveX ControlWizard)可以快速生成ActiveX 控件的程序框架。拨号功能是由VC++提供的 rasapi32.lib 的函数库支持的,函数及变量在 ras.h 文件头定义。函数RasDial()实现拨号功能,RasHangUp()用来终止拨号连接。函数调用方法:
DWORD dwRet = RasDial( NULL, NULL,
&rdParams, 0L, NULL, &hRasConn );
DWORD dwRet = RasHangUp( hRasConn );
其中:
rdParams 为 RASDIALPARAMS 结构,
主要参数定义如下:
DWORD dwSize 结构变量的大小;
TCHAR szEntryName[] 拨号网络中建立的连接名;
TCHAR szPhoneNumber[] 电话号码,
若采用 szEntryName 中定义的号码,置为NULL 值;
CHAR szCallbackNumber[] 回拨号码,不用时置为NULL;
TCHAR szUserName[] 用户名;
TCHAR szPassword[] 用户口令;
TCHAR szDomain[] 用户权限验证域,
若为'*'采用szEntryName 中定义的域进行验证。
HRasConn 是 HRASCONN 结构,作远程拨号连接句柄。

一、 建立工程项目

  启动CV++集成开发环境,打开"New"对话框,选中Projects中的 "MFC ActiveX Control Wizard", 在Project name 项输入"Dialer" ,在Location 项会生成相应的路径。单击OK钮进入第二步,保留默认值。单击Next 进入最后一步,选中 Invisible at run time (运行时窗口不可见),其余保持默认。按Finish 钮,弹出一个信息对话框,按OK钮完成工程项的创建。

二、修改控件图标

  工程项自动生成一个15 X 15 Bitmap 的位图,该图将在VB 的资源工具箱中显示为一个图标。实际上图标可以显示到 25 X 25 大小尺寸的位图。您需要将该位图改为自己的位图。VC++集成开发环境提供绘图工具让您修改。

三、 制控件界面

  在应用程序设计时,嵌入的控件会显示一个界面。工程项创建时自动生成一个椭圆例图。在这里我们要去掉画椭圆的代码,并增加如下代码来限制控件窗口的大小及画出控件设计时的显示图标:
void CDialerCtrl::OnDraw(CDC* pdc,
const CRect& rcBounds, const CRect& rcInvalid)
{
// TODO: Replace the following code
with your own drawing code.
//pdc- >FillRect(rcBounds,CBrush::FromHandle
((HBRUSH)GetStockObject(WHITE_BRUSH)));
//pdc->Ellipse(rcBounds);
//限制控件窗口大小
if (rcBounds.Height!=25 ||
rcBounds.Width!=25)SetControlSize(25,25);
//显示位图
CBitmap bitmap;
CBitmap* pOldBitmap;
CDC MemDC;
MemDC.CreateCompatibleDC(pdc);
bitmap.LoadBitmap(IDB_DIALER);
pOldBitmap=MemDC.SelectObject(&bitmap);
pdc->BitBlt(0,0,48,48,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(pOldBitmap);
}

四、 添加拨号库及头文件---- 将rasapi32.lib 及 ras.h 加到工程项。

五、 添加控件属性

  我们要在控件中设置一些属性来实现应用程序与控件的传递参数及控制动作。在Class Wizard 的 Automation 标签中 , Class name 项选中 CDialerCtrl ,单击 Add Property 按钮,增加控件属性。

六、 增加拨号及收线函数

bool CDialerCtrl::DialUp(){ //拨号函数
RASDIALPARAMS rdParams;
rdParams.dwSize = sizeof(RASDIALPARAMS);
lstrcpy( rdParams. szEntryName, m_netWorking);
lstrcpy( rdParams.szPhoneNumber, m_phone);
rdParams.szCallbackNumber[0] = '/0';
lstrcpy( rdParams.szUserName, m_userName );
lstrcpy( rdParams.szPassword, m_passWord );
rdParams.szDomain[0] = '*';
hRasConn = NULL; //hRasConn
为 HRASCONN 类型的变量;
DWORD dwRet = RasDial( NULL, NULL,
&rdParams, 0L, NULL, &hRasConn );
if ( dwRet == 0 ) {m_message="OK!";
m_returnCode = deRet; return true;}
//这里省去出错处理代码
return false;
}
bool CDialerCtrl::HandUp(){ //收线函数
DWORD dwRet = RasHangUp( hRasConn );
//这里省去出错处理代码
return true;
}

七、 增加动作函数

控件的Action 的值一有改变将自动运行该函数,Action 有两个动作:1.拨号 2.收线。
void CXiaXinDialCtrl::OnActionChanged() {
// TODO: Add notification handler code
if (m_action==1) DialUp(); //调用拨号函数
if (m_action==2) HandUp(); //调用收线函数
SetModifiedFlag();
}

八、 编译,链接,自动注册

  启动VC++的建立(build)动作,将实行编译,链接生成 Dialer.ocx 并自动注册到本机。这时您可以启动VB 开发平台 打开 Components 就可以看到刚注册的 Dialer ActiveX Control Module 。

九、 VB 的调用方法

在VB的开发中,您可以和通用的控件一样使用Dialer.ocx。调用方法如下:
Private Sub Command1_Click()
Dialer1.NetWorking = Text1.Text
Dialer1.UserName = Text2.Text
Dialer1.PassWord = Text3.Text
Dialer1.Phone = Text4.Text
Label5.Caption = "正在拨号..."
Dialer1.Action = 1
Labe15.Caption = Dialer1.Message
' 如果接通 窗口最小化
If XiaXinDial1.ReturnCode =
0 Then Form1.WindowState = 1
End Sub

vc++实例超详细(代码,工程文件,程序分析,运行结果) 现在用的是vc6.0,很多原有的c程序经典案例在win7下运行结果错误一大片,改起来很是费劲,本10例是自己亲自调试成功了,绝对完整,希望你帮到大家! 立即下载

相关推荐

ADSL拨号VC程序

VC++编写的ADSL拨号程序,程序不复杂

VS使用技巧

本文主要记录VS的一些使用技巧,用以备忘,持续更新!!

北极星的技术笔记 3502

电话拨号程序

Phone.apk-安卓手机电话拨号程序

vc6.0 c语言加油站,第2章 C语言初探:4、在VC6.0下运行C语言程序

不管你是否决定使用C-Free,都建议阅读《在C-Free下运行C语言程序》,文中讲到了几个重要概念,对初学者大有裨益。Visual C++ 6.0简称VC或者VC6.0 确实有点老了,在XP、Win7下都可能会存在兼容性问题,在Win8下根本不能使用,如果不是学校要求或者项目需要,建议使用VS学习。这里之所以讲解VC6.0,是为了照顾在校生或者有特殊需求的读者。安装VC6.0微软原版的VC6.0...

weixin_39684495的博客 981

VC6 RAS拨号程序源代码.rar

VC 6.0 RAS拨号程序客户端源代码,以前能用,现在用不了了,原理是输入电话号码后即可拨号,与VC 网络编程相关的程序,源码在VC6.0下可顺利编译。拨号程序如下:   CRasDialDlg::CRasDialDlg(CWnd* pParent /*=NULL*/)    : CDialog(CRasDialDlg::IDD, pParent)   {    m_strDomain = _T("");    m_strPass = _T("11111");    m_strPhone = _T("87951235");    m_strUser = _T("ware");    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);    m_ras = new CRas(this);   }

单片机C语言编程输出音乐并驱动扬声器发声

单片机C语言编程输出音乐并驱动扬声器发声,简单易用

用VC++6.0编写拨号程序 作者:陈晓东 (转)

用VC++6.0编写拨号程序 作者:陈晓东 (转)[@more@]用VC++6.0编写拨号程序 作者:陈晓东 发布时间:2001/05/22 文章摘要:   本文利用visual c++6.0给出了一个拨号程序的实现,可以作...

csd3176的博客 257

Dify+firecrawl:一个超好用的网页转Markdown API,打造你的第一个能检索爬虫RAG知识库的聊天机器人

Firecrawl是一个超简单的API服务——你扔给它一个URL,它就能把整个网站(包括子页面!)的内容自动抓下来,并且转换成干净、易读的Markdown格式。不用配置网站的站点地图,不用写爬虫规则,API调一下,数据直接到手。接下来我们一起本地部署吧!

2501_91673550的博客 2988

用VC++6.0编写拨号程序

用VC++6.0编写拨号程序 作者:陈晓东 发布时间:2001/05/22      文章摘要:   本文利用visual c++6.0给出了一个拨号程序的实现,可以作为VC学习者编程实践的范例。           -------------------------------------------------------------------------------- 正文:   

回家念经(kv300)--编程之禅 1711

通义千问语言模型Qwen2.5架构详解

此外,将基于API的模型 Qwen-Plus 与领先的专有和开源模型进行了对比,包括 GPT4-o、Claude-3.5-Sonnet、Llama-3.1-405B和DeepSeek-V2.5。Qwen2.5-Math-72B-Instruct的整体性能超越了Qwen2-Math-72B-Instruct和GPT4-o,甚至是非常小的专业模型如 Qwen2.5-Math-1.5B-Instruct也能在与大型语言模型的竞争中取得高度竞争力的表现。近来也出现了明显的转向小型语言模型(SLMs)的趋势。

搏博的专栏 1万+

IMU数据处理避坑指南:从理论到实践的加速度计重力消除方案

本文详细解析了IMU数据处理中的重力消除技术,从理论基础到实践应用,涵盖了加速度计和陀螺仪的核心问题。通过ROS2实战案例,介绍了静态标定与动态校准的技术对比,以及多传感器融合的进阶策略,帮助开发者避免常见陷阱,提升IMU数据处理的精度和效率。

purple的博客 739

用VC++实现上网拨号功能

 现在的时代是网络的时代,网络应用程序的应用越来越广泛,在自己设计的应用程序中实现直接拨号上网,给应用程序的使用者带了很多方便,本应用程序就是在中文windows95操作系统上,用VC++5.0开发的实现拨号上网的一个小程序,希望能对大家有所帮助。下面是实现这一功能的源程序: ---- 首先创建一个以对话框为主的VC++工程,以下是本应用程序用的对话框(图略) ---- 然后在对话框这个类的头文件

xwchen的专栏 808

功率半导体器件选型指南:从GTO、GTR到MOSFET、IGBT的原理与应用

功率半导体器件是电力电子系统的核心,如同电路中的智能开关,负责电能的转换与控制。其工作原理基于半导体材料的导电特性,通过控制信号精确管理电路的通断。这类器件的技术价值在于提升能效、减小体积并增强系统可靠性,广泛应用于变频器、逆变器、开关电源及新能源领域。理解不同器件如MOSFET的雪崩能量与IGBT的损耗计算,是进行高效、可靠电路设计的基础。本文聚焦于GTO、GTR、MOSFET和IGBT这四类经典全控型器件的特性对比与选型策略,帮助工程师在具体项目中做出经济可靠的选择。

cumo7370的博客 446

用VC++6.0编写拨号程序 (转)

用VC++6.0编写拨号程序 (转)[@more@]拨号上网是编写网络应用软件常用的操作,程序在运行某些远程网上操作前,需要先拨号与网络连接,完成操作后由必须收线断开。在windows 95/98的"拨号网络"中,虽然提供拨号功...

csd3176的博客 197

AMSR-2数据下载实战:从JAXA到LPRM的算法选择与效率优化

本文详细介绍了AMSR-2数据的下载实战,重点对比了JAXA与LPRM算法的差异及适用场景,并提供了高效下载方案和网络优化策略。通过实际案例和代码示例,帮助用户快速获取和处理AMSR-2数据,提升研究效率。

rl6adventurer的博客 691

Linux内核编程(十三)Input输入子系统

Input 子系统是 Linux 内核中专门为输入设备设计的一个子系统,它提供了一个通用的框架来管理各种输入设备,如键盘、鼠标、触摸屏、游戏手柄等。这个子系统的主要目的是简化和规范化输入设备驱动的开发,同时提高驱动的通用性和兼容性。(1)输入设备:如键盘、鼠标、触摸屏、游戏手柄等,它们是用户与计算机进行交互的主要方式。(2)输入设备驱动的复杂性:传统上,为每种输入设备编写驱动都需要创建文件、进行硬件初始化、实现文件操作函数集和处理中断等。每种设备的驱动可能都有许多重复性的工作。

qq_1033275663的博客 2864

VC++实现上网拨号功能

 用VC++实现上网拨号功能 大连捷通电脑技术有限公司 陈珏 ---- 现在的时代是网络的时代,网络应用程序的应用越来越广泛,在自己设计的应用程序中实现直接拨号上网,给应用程序的使用者带了很多方便,本应用程序就是在中文windows95操作系统上,用VC++5.0开发的实现拨号上网的一个小程序,希望能对大家有所帮助。下面是实现这一功能的源程序: ---- 首先创建一个以对话框为主的

xiezhsh的专栏 894

自动驾驶感知新方案:YOLOv13多模态(RGB+LiDAR+热成像)融合实战

YOLOv13的RGB+LiDAR+热成像多模态融合方案,解决了自动驾驶感知的鲁棒性问题,通过跨模态特征互补和注意力融合,实现了复杂场景下的高精度检测。本文从架构设计、数据预处理、核心模块实现到车载部署,完成了全流程实战。动态模态权重:根据场景自动调整各模态的权重(如黑夜场景提升热成像权重);端到端3D检测:直接从原始点云与图像进行3D检测,减少预处理步骤;轻量化优化:针对车载设备进一步剪枝量化,提升推理速度。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 533

[转]用VC++实现用Rasdial函数拨号

用VC++实现用Rasdial函数拨号2008-10-31 16:34//VC++ 拨号函数演示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2

imxiangzi的专栏 1309

YOLO项目从零开始:超详细运行教程(图文保姆级教学)

至此,我们已经完整跑通了YOLO项目的安装与启动流程,无论你是零基础小白还是刚入门的AI新兵,只要按部就班操作,也能轻松实现目标检测项目的落地。

一键难忘的博客 4797

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

用VC++实现上网拨号功能 (转)

用VC++实现上网拨号功能 (转)[@more@]  用VC++实现上网拨号功能 大连捷通电脑技术有限公司 陈珏 ---- 现在的时代是网络的时代,网络应用程序的应用越来越广泛,在自己设计的应用程序中实现直接拨号...

csd3176的博客 150

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

用VC++编写 网络计时计费工具

我们每次在Windows中拨号上网之后拨号程序都会最小化到系统托盘区里面。当我们把鼠标移到它的图标上时,就会显示出接收和发送的数据流量,但我们最关心的往往是我们已经上网有多长时间了以及上网费用。下面笔者将向你介绍如何用VC++编写一个有这些功能的软件,希望能对你有所帮助。    我们的程序界面,当按下确定时,它会最小化到系统托盘区。将鼠标移到它的图标上,如果你已经连到了网上,就会显示连网的时

lilylilylulu的专栏 680

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 企业安全策略下的跨平台数据同步
下一篇: 在VC++中访问和修改系统注册表 作者:陈伟
CandyCat
博客等级 码龄26年 23粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值