您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > VFP开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

在VFP中调用API实现拨号上网
2001-11-06· ·陈斌··yesky

1 2  下一页


  在Visual FoxPro 中实现拨号上网功能,难点在于如何调用相应的WINDOWS API函数。与拨号网络相关的几个API函数需要复杂的结构类型的参数,在VFP帮助文件“程序员指南—访问API”中有相关说明,但较为简单,不足以解决问题,在此作进一步探讨。希望通过本文能解决实现拨号上网的实际问题,更希望通过这个例子帮助了解如何在VFP环境下调用参数复杂的API函数,以扩展VFP的应用。

  因篇幅所限,本文仅论述关键部分,相关细节说明请参阅参考文件。

  WINDOWS API中RasDial函数可实现拨号上网功能,可在MSDN帮助中查到,其参数简述如下:

DWORD RasDial( // 返回四字节整数,对应VFP的INTEGER型变量
 LPRASDIALEXTENSIONS lpRasDialExtensions, // 指针,置NULL即可
 LPCTSTR lpszPhonebook, // 指针,置NULL即可
 LPRASDIALPARAMS lpRasDialParams,
 // 指针,指向参数结构变量RASDIALPARAMS
 DWORD dwNotifierType, // 四字节整数,置0即可
 LPVOID lpvNotifier, // 指针,置NULL即可
 LPHRASCONN lphRasConn // 指针,指向远程访问连接句柄HRASCONN。
 // 调用RasDial前需先置HRASCONN为NULL
);

  其中结构RASDIALPARAMS描述如下:

typedef struct _RASDIALPARAMS {
 DWORD dwSize; // 4字节,值为本结构占用总字节数
 // 调用此函数前必须给此变量赋值
 TCHAR szEntryName[RAS_MaxEntryName + 1];
 // 257字节,拨号网络电话簿中连接名,
 // 为空则在第一个MODEM端口上,用下述电话号码、用户名、密码建立连接
 TCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; // 129字节,电话号码
 TCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
 // 129字节,回叫号码,置空
 TCHAR szUserName[UNLEN + 1]; // 257字节,用户名
 TCHAR szPassword[PWLEN + 1]; // 257字节,密码
 TCHAR szDomain[DNLEN + 1] ; // 16字节,域名,置空
 #if (WINVER >= 0x401) // 缺省情况下,WINVER=Ox400,无以下两项
  DWORD dwSubEntry;
  DWORD dwCallbackId;
 #endif
} RASDIALPARAMS;

  以上RAS_MaxEntryName等预定义值,可从RAS.H与LMCONS.H中查出。难点在于dwSize值的确定:将结构中各变量字节长度累加应为1049字节,但将1049代入dwSize去调用RasDial函数却返回错误。启动VC++6.0定义了一个RASDIALPARAMS型结构变量后,发现其长度为1052字节,即最接近1049且能被4(DWORD所占字节数)整除的值。

1 2  下一页

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 在ASP.NET中使用Visual FoxPro7.0
 VFP中使用Grid控件设计通用录入界面
 用VFP批量打印信封
 甲骨文发表新版AP服务器软件Oracle9iAS Release2
 在Linux下拨号上网——设置篇
 英国家庭上网数量8月首次下降
 图文:美发厅里免费上网
 走出购机的误区
 利用VFP在INTERNET上制作数据库动态查询
 使用VFP的系统变量_SCREEN
 VFP的数据库加密算法
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!