使用TAPI编程时链接错误

jaxiaoyu 2002-11-27 10:13:00
我在使用TAPI编程时,编译可通过,但链接时报如下错误:
-------------------Configuration: viocedb - Win32 Debug--------------------
Linking...
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnForceClose(void)" (?OnForceClose@CTapiLine@@MAEXXZ)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnDynamicRemove(void)" (?OnDynamicRemove@CTapiLine@@MAEXXZ)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnDynamicCreate(void)" (?OnDynamicCreate@CTapiLine@@MAEXXZ)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CMyLine::OnNewCall(class CTapiCall *)" (?OnNewCall@CMyLine@@MAEXPAVCTapiCall@@@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnToneDetected(struct HCALL__ const *,unsigned long)" (?OnToneDetected@CTapiLine@@MAEXPBUHCALL__@@K@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnCallMediaModeChange(struct HCALL__ const *,unsigned long)" (?OnCallMediaModeChange@CTapiLine@@MAEXPBUHCALL__@@K@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnDigitDetected(struct HCALL__ const *,unsigned long,unsigned long)" (?OnDigitDetected@CTapiLine@@MAEXPBUHCALL__@@KK@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CMyLine::OnDeviceStateChange(unsigned long,unsigned long,unsigned long)" (?OnDeviceStateChange@CMyLine@@MAEXKKK@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnGenerateComplete(struct HCALL__ const *,unsigned long)" (?OnGenerateComplete@CTapiLine@@MAEXPBUHCALL__@@K@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnGatherDigitsComplete(struct HCALL__ const *,unsigned long)" (?OnGatherDigitsComplete@CTapiLine@@MAEXPBUHCALL__@@K@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnDevSpecificFeature(unsigned long,unsigned long,unsigned long,unsigned long)" (?OnDevSpecificFeature@CTapiLine@@MAEXKKKK@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnDevSpecific(unsigned long,unsigned long,unsigned long,unsigned long)" (?OnDevSpecific@CTapiLine@@MAEXKKKK@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnClose(void)" (?OnClose@CTapiLine@@MAEXXZ)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CMyLine::OnCallStateChange(struct HCALL__ const *,unsigned long,unsigned long,unsigned long)" (?OnCallStateChange@CMyLine@@MAEXPBUHCALL__@@KKK@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CMyLine::OnCallInfoChange(struct HCALL__ const *,unsigned long)" (?OnCallInfoChange@CMyLine@@MAEXPBUHCALL__@@K@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnAgentStateChange(unsigned long,unsigned long,unsigned long)" (?OnAgentStateChange@CTapiLine@@MAEXKKK@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall CTapiLine::OnAddressStateChange(unsigned long,unsigned long)" (?OnAddressStateChange@CTapiLine@@MAEXKK@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "public: __thiscall CTapiLine::CTapiLine(void)" (??0CTapiLine@@QAE@XZ)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall CTapiLine::~CTapiLine(void)" (??1CTapiLine@@UAE@XZ)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CTapiLine::classCTapiLine" (?classCTapiLine@CTapiLine@@2UCRuntimeClass@@B)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "public: unsigned int __thiscall CTapiConnection::GetLineDeviceCount(void)const " (?GetLineDeviceCount@CTapiConnection@@QBEIXZ)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "public: long __thiscall CTapiConnection::Init(char const *,struct CRuntimeClass *,struct CRuntimeClass *,struct CRuntimeClass *,struct CRuntimeClass *,unsigned long)" (?Init@CTapiConnect
ion@@QAEJPBDPAUCRuntimeClass@@111K@Z)
YUNXINGDIALOG.obj : error LNK2001: unresolved external symbol "class CTapiConnection * __cdecl GetTAPIConnection(void)" (?GetTAPIConnection@@YAPAVCTapiConnection@@XZ)
Debug/viocedb.exe : fatal error LNK1120: 23 unresolved externals
Error executing link.exe.

viocedb.exe - 24 error(s), 0 warning(s)
有没有解决的好办法。
...全文
283 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaxiaoyu 2002-11-27
  • 打赏
  • 举报
回复
很不幸,加了后可谓惨不忍睹:
惨状如下:
--------------------Configuration: viocedb - Win32 Debug--------------------
Compiling...
YUNXINGDIALOG.cpp
d:\viocedb\version.lib(1) : error C2143: syntax error : missing ';' before '!'
d:\viocedb\version.lib(2) : error C2018: unknown character '0x60'
d:\viocedb\version.lib(3) : error C2018: unknown character '0x1f'
d:\viocedb\version.lib(3) : error C2018: unknown character '0x7'
d:\viocedb\version.lib(3) : error C2018: unknown character '0x8e'
d:\viocedb\version.lib(3) : error C2018: unknown character '0xb0'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe0'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xa0'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xa0'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe0'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe0'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x10'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xa4'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x10'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xa4'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x18'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x18'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x90'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x90'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xe'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xf'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xf'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x11'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xfc'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x11'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xfc'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x11'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x14'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x11'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x14'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x11'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x88'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x11'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x88'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xf'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xc0'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xf'
d:\viocedb\version.lib(4) : error C2018: unknown character '0xc0'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x10'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x10'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x7f'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : error C2018: unknown character '0x40'
d:\viocedb\version.lib(4) : error C2059: syntax error : 'bad suffix on number'
d:\viocedb\version.lib(4) : fatal error C1003: error count exceeds 100; stopping compilation
Error executing cl.exe.

viocedb.exe - 102 error(s), 0 warning(s)
approach 2002-11-27
  • 打赏
  • 举报
回复
YOU must include
1) version.lib
2)strmiids.lib
3)t3iid.lib
4)tapi32.lib
try again!
Good luck!
书名:《Delphi串口及语音传真高级编程》(北京航空航天大学出版社.温锦山.唐柱鹏) PDF格式扫描版,全书分为9章,共420页。2002年4月出版。 内容简介 本书是一本介绍Delphi串口及语音传真编程的专著。从介绍Modem直IO、TAPI编程出发,到介绍全球著名的组件Async Professional(APRO)的属性、方法、事件以及丰富的实例,特别是对语音、传真编程方法进行了深入的剖析,详尽地介绍了APRO的功能。    本书的精华是结合我国电信标准和Modem硬件的实际情况,部分修改了APRO组件的代码,用语音识别的方法解决了在“语音”模式中不能判断对方是否挂机、无人听、忙音、静音等(“数据”模式本来就可以判断),修正了“传真”模式中部分内置Modem上不能收发传真的错误,成功地解决了国内语音、传真编程中的核心问题。    本书有丰富的实例,是作者多年来对电信编程的心得,是为解决实际问题而编写的,汇集了作者的经验和技巧。本书是电信应用编程中的得力助手,可为对Delphi语音、传真编程感兴趣者提供帮助,亦可供广大编程人员及各大专院校师生参考。 目录 第1章 引 言  1.1 delphi组件和vcl  1.2 delphi开发数据库  1.3 oop结构  1.3.1 类  1.3.2 类定义  1.3.3 类的特性  1.3.4 重载的方法和构造函数  1.3.5 继 承  1.4 windows注册表编程  1.5 多线程技术  1.5.1 线程的概念  1.5.2 线程的挂起和继续  1.5.3 多线程同步执行  1.5.4 tthread线程类  1.6 多媒体应用编程  1.7 调制解调器基础  1.7.1 pc串口的针脚分配  1.7.2 调制解调器工作原理  1.7.3 调制解调器的流控制 . 1.7.4 at命令 第2章 直io及tapi编程  2.1 串行口api函数  2.1.1 常用的串行通信操作函数  2.1.2 delphi下的具体实现方法  2.2 mscomm32控件  2.2.1 用mscomm32.ocx代替繁琐的api函数调用  2.2.2 mscomm控件的安装  2.2.3 mscomm的主要属性和事件  2.2.4 mscomm32的使用例子  2.2.5 程控机计费系统的收模块  2.3 tapi简介  2.3.1 关于tapi  2.3.2 tsp  2.3.3 tapi提供的服务与tapi硬件的关系  2.4 tapi实例  2.4.1 tapi通信的基本步骤  2.4.2 tapi函数  2.4.3 利用tapi编写实用的程序  2.5 第三方组件简介  2.5.1 turbopower apro  2.5.2 voice modem library组件  2.5.3 其他组件及控件  2.5.4 apro的优点 第3章 apro基本控件  3.1 端口操作控件  3.1.1 tapdcomport控件  3.1.2 comportform的例子  3.1.3 tapdwinsockport控件  3.1.4 tapdwinsockport的例子  3.2 拨号控件  3.2.1 tapdrasdialer控件  3.2.2 tapdrasstatus控件  3.2.3 拨号连的例子  3.3 ftp文件传输控件  3.3.1 tapdftpclient控件  3.3.2 tapdftplog控件  3.3.3 ftp客户操作的例子  3.4 数据传输控件  3.4.1 tapddatapacket控件  3.4.2 数据包处理的例子  3.4.3 tapdscript控件  3.4.4 脚本编程的例子  3.5 modem控件  3.5.1 tapdsmodem控件  3.5.2 tapdslcontroller控件  3.5.3 tapdstatuslight控件  3.5.4 tapdsmodem的例子  3.6 终端控件  3.6.1 tadterminal控件  3.6.2 tadttyemulator控件  3.6.3 tadvt100emulator控件  3.6.4 termdemo的例子 第4章 传真控件  4.1 传真文件格式转换  4.1.1 tapdfaxconverter控件  4.1.2 传真文件转换源代码  4.2 收发传真控件  4.2.1 tapdsendfax控件  4.2.2 tapdreceivefax控件  4.2.3 tapdfaxstatus控件  4.2.4 tapdfaxlog控件  4.2.5 收发传真的例子  4.3 浏览传真文件控件  4.3.1 tapdfaxviewer控件  4.3.2 浏览传真文件的源代码  4.3.3 tapdfaxunpacker控件  4.3.4 传真文件解压的例子  4.4 传真打印控件  4.4.1 tapdfaxprinter控件  4.4.2 tapdfaxdriverinterface控件  4.4.3 打印状态监视的例子  4.4.4 tapdfaxprinterstatus控件  4.4.5 tapdfaxprinterlog控件  4.4.6 传真文件打印的例子  4.5 传真客户/服务器控件  4.5.1 tapdfaxserver控件  4.5.2 tapdfaxservermanager控件  4.5.3 tapdfaxclient控件  4.5.4 传真任务管理的例子 第5章 tapi控件  5.1 tapdtapidevice控件  5.2 tapdtapistatus控件  5.3 tapdtapilog控件 第6章 apro2.x  6.1 终端仿真控件  6.1.1 tapdterminal控件  6.1.2 tapdbpterminal控件  6.1.3 tapdemulator控件  6.1.4 tapdkeyboardemulator控件  6.2 modem控件  6.2.1 tapdinidbase控件  6.2.2 tapdmodemdbase控件  6.2.3 tapdmodem控件  6.2.4 tapdphonebook控件  6.2.5 tapdphonebookeditor控件  6.2.6 tapdphonenumberselector控件  6.2.7 tapdmodemdialer控件  6.2.8 tapddialerdialog控件  6.2.9 示例代码 第7章 语音自动应答系统  7.1 一个较简单的语音应答程序  7.2 完整的语音自动应答系统  7.2.1 系统概述及整体方案  7.2.2 被更改的控件代码adtapi.pas  7.2.3 主程序窗口  7.2.4 电话号码簿模块  7.2.5 wave格式转换模块  7.2.6 录音文件管理模块  7.2.7 tapi设备管理模块  7.3 疑难解答与调试  7.3.1 疑难解答  7.3.2 调 试 第8章 收发传真系统  8.1 系统概述  8.2 整体方案  8.3 系统应用  8.4 源代码剖析  8.4.1 主程序模块  8.4.2 设计传真页面模块  8.4.3 解压线程  8.4.4 压缩线程  8.5 疑难解答与调试  8.5.1 疑难解答  8.5.2 调 试 第9章 监视串口的windows内核编程  9.1 内核程序编写初步  9.2 实现步骤  9.3 源码分析  9.3.1 动态连库模块  9.3.2 截取api的公共单元  9.3.3 主程序模块 附 录  附录a 组件的安装  附录b at命令一览表
◆ 01.htm 1、怎么用mscomm控件检测modem是否与计算机联正确?2、如何用mscomm挂断modem与别的电话机间的连?(已通) ◆ 02.htm CWinInetConnection---一个封装了WinInet API函数的类 ◆ 03.htm MODEM通讯意外处理 ◆ 04.htm MsComm 文字传输 ◆ 05.htm PING一个IP地址(向它发送一个数据包并等待回应) ◆ 06.htm SMTP协议简介 (Simple Mail Transfer Protocol) ◆ 07.htm VB5.0 中远程数据库的访问 ◆ 08.htm VB下如何编写CRC校验程序 ◆ 09.htm VB中Winsock控制的UDP协议的使用 ◆ 10.htm Visual Basic 6中发送邮件的新方法 ◆ 11.htm Visual Basic通信程序设计 ◆ 12.htm Whois 示例程序 ◆ 13.htm Winsock Terminal示例程序 ◆ 14.htm WinSock断开导致客户端问题 ◆ 15.htm 把Outlook信箱中的附件另存为 ◆ 16.htm 保证连网计算机间同步 ◆ 17.htm 编写网络寻呼机 ◆ 18.htm 编制自已的电话录音小程序 ◆ 19.htm 程序中如何启动默认的拨号连 ◆ 20.htm 程序中如何启动默认的拨号连? ◆ 21.htm 打开器并进入指定网址 ◆ 22.htm 打开一个直到自己主页的器 ◆ 23.htm 得到用户的IP地址 ◆ 24.htm 电话拨号 ◆ 25.htm 电子邮件的标准格式 (RFC 822) ◆ 26.htm 断开拨号网络的连 ◆ 27.htm 断开与 Internet 的连 ◆ 28.htm 发送电子邮件附件 ◆ 29.htm 发送电子邮件附件1 ◆ 30.htm 发送电子邮件附件2 ◆ 31.htm 发送电子邮件附件3 ◆ 32.htm 发送电子邮件附件4 ◆ 33.htm 获得用户网络登录名 ◆ 34.htm 基 于Win95 的VB5 串 口 通 信 程 序 ◆ 35.htm 基于Win95的VB5串口通信程序 ◆ 36.htm 几个设置IE的API ◆ 37.htm 检测运程数据传送的断线 ◆ 38.htm 简单的聊天程序 ◆ 39.htm 简单电子邮件发送程序 ◆ 40.htm 建立拨号联 ◆ 41.htm 将所有窗口最小化 ◆ 42.htm 利用IE控件访问Internet ◆ 43.htm 利用IE控件设计简易器 ◆ 44.htm 利用Mscomm32控件判断MODEM是否打开,或者正在工作,并且判断拨号是否遇忙音 ◆ 45.htm 利用TAPI进行电话拨号 ◆ 46.htm 利用VB访问Internet ◆ 47.htm 利用VB设计聊天室 ◆ 48.htm 利用Visual Basic实现无线通讯 ◆ 49.htm 利用Winsock控件实现局域网通信 ◆ 50.htm 强制一个本地或远程NT系统关闭 ◆ 51.htm 取得网卡序列号 ◆ 52.htm 如何从 Internet 上取回某一个网页的內容? ◆ 53.htm 如何检测是否已连到Internet? ◆ 54.htm 如何利用Winsock控件编写自己的Internet程序 ◆ 55.htm 如何每天抓取 Internet 上某一个网页中的图片来更换桌面的壁纸? ◆ 56.htm 如何启动拨号网路中的连线? ◆ 57.htm 如何使用MSCOMM32.OCX发送大于80H的字符,可否给个示例程序 ◆ 58.htm 如何通过VB获取网卡地址 ◆ 59.htm 如何用VB打开默认器或默认发信程序? ◆ 60.htm 如何用Visual Basic编写小型的网络系统 ◆ 61.htm 如何在程序中启动 NT 的【拨号连】对话框 ◆ 62.htm 如何在程序中启动 NT 的【拨号连】对话框? ◆ 63.htm 如何在网页上使用 VB5 制作的 ActiveX 控件? ◆ 64.htm 如何中断【拨号网络连】 ◆ 65.htm 设计Browser及FTP程序 ◆ 66.htm 设计Chat程序 ◆ 67.htm 设计E-mail程序 ◆ 68.htm 设置计算机名称 ◆ 69.htm 使用VB获得一页的HTML代码 ◆ 70.htm 使用VB收发电子邮件 ◆ 71.htm 使用标签控件调出器 ◆ 72.htm 使用超链和发送Email ◆ 73.htm 使用器的文件复制对话框 ◆ 74.htm 输入/输出篇 ◆ 75.htm 通过WnetEnumResource函数获得网络资源 ◆ 76.htm 通往 Internet 的捷径 ◆ 77.htm 显示计算机的名称 ◆ 78.htm 用 MAPI 控件实现发送邮件 ◆ 79.htm 用 WinSock 控件下载文件 ◆ 80.htm 用 Winsock 实现聊天的程序 ◆ 81.htm 用Internet Transfer编写FTP程序 ◆ 82.htm 用Sockets发送电子邮件 ◆ 83.htm 用VB 创 建 自 己 的 通 信 程 序 ◆ 84.htm 用VB5.0开发通信软件的技巧 ◆ 85.htm 用VB5开发IE ◆ 86.htm 用VB编写网络寻呼 ◆ 87.htm 用VB编写小型的网络系统 ◆ 88.htm 用VB创建自己的通信程序 ◆ 89.htm 用VB构建Internet的应用[微软提供] ◆ 90.htm 用VB开发标准CGI程序 ◆ 91.htm 用VB实现客户——服务器(TCP IP)编程实例 ◆ 92.htm 用VB实现客户服务器(TCP、IP)编程实例 ◆ 93.htm 用VB实现聊天讨论室和点对点会话 ◆ 94.htm 用VB写一个定PING某IP的程序 ◆ 95.htm 用VB制作器 ◆ 96.htm 用Visual Basic 5.0设计E-mail程序(MAPI) ◆ 97.htm 用Visual Basic6.0编写客户服务器程序 ◆ 98.htm 用Visual Basic创建FTP组件 ◆ 99.htm 用Visual Basic开发数据库器 ◆ 100.htm 用Visual Basic轻松地设计Browser及Ftp程序 ◆ 101.htm 用Winsock控件发信Email ◆ 102.htm 用Winsock控件实现文件的下载 ◆ 103.htm 用Winsock实现点对点通信 ◆ 104.htm 邮件检查程序(二) ◆ 105.htm 邮件检查程序(一) ◆ 106.htm 在VB程序中怎样挂断拨号网络 ◆ 107.htm 在VB中操纵OLE服务器应用程序 ◆ 108.htm 在VB中利用UDP协议编写聊天程序 ◆ 109.htm 在VB中模拟实现邮件传输 ◆ 110.htm 在VB中如何得到网络中某一台电脑(电脑名)的网卡地质? (自己的) ◆ 111.htm 在VB中实现文件上传 ◆ 112.htm 在VB中实现文件上载 ◆ 113.htm 在VB中使用UDP协议 ◆ 114.htm 在VB中用Outlook发电子邮件 ◆ 115.htm 在WindowsNT网络中广播消息 ◆ 116.htm 在程序中打开 Internet 拨号连窗口 ◆ 117.htm 在一个单位内部或通过广域协议(如X.25)互联的行业内部都有几十或上万台计算机互联,用Intranet虽然可以建立聊天室,但实现点对点实对话却比较困难。本人用Winsock和VB自制了一套聊天室和对话系统,特拿来供同行们参考。 ◆ 118.htm 在应用中集成器 ◆ 119.htm 在桌面上建立一个 Internet 快捷键 ◆ 120.htm 怎样收电子邮件(POP3协议简介) ◆ 121.htm 怎样用VB得知系统当前是否处于internet链结状态 ◆ 122.htm 制作自己的网络搜索软件 ◆ 123.htm 自动更新工作站的应用程序 ◆ 124.htm 自己的IE——用VB制作器 ◆ 125.htm HTTP协议(学习笔记) ◆ 126.htm HTTP协议四--关于Chunked编码 ◆ 127.htm IE器完全控制 ◆ 128.htm OICQ服务器系统通讯协议 ◆ 129.htm POP3协议的基本命令 ◆ 130.htm RAS API上的其他Function ◆ 131.htm VB + API 获取 IE 的 “代理服务器” 配制 ◆ 132.htm vb调用winInet API口post数据到指定的url ◆ 133.htm vb开发通信软件 ◆ 134.htm vb设计数据库电子邮件程序(1) ◆ 135.htm vb设计数据库电子邮件程序(2) ◆ 136.htm vb设计数据库电子邮件程序(3) ◆ 137.htm vb设计数据库电子邮件程序(4) ◆ 138.htm vb设计数据库电子邮件程序(5) ◆ 139.htm vb设计数据库电子邮件程序(6) ◆ 140.htm VB实现应用程序在局域网上自动更新 ◆ 141.htm VB邮件检查程序 ◆ 142.htm vb中从域名得到IP及从IP得到域名 ◆ 143.htm VB中检测是否连网 ◆ 144.htm WebClass实现动态WEB编程之理论篇 ◆ 145.htm Winsocket网络编程谈 ◆ 146.htm Winsock编程框架 ◆ 147.htm Winsock错误代码一览表 ◆ 148.htm 程式自动呼叫拨号网络(RAS API) ◆ 149.htm 打开一个超连 ◆ 150.htm 得到登入windows 的人的id ◆ 151.htm 访问Internet并调用Explorer ◆ 152.htm 非同步文件下载类 ◆ 153.htm 给Outlook的所有用户发送信件 ◆ 154.htm 获得网卡的MAC地址 ◆ 155.htm 基于WinSock的小型网络管理系统及其实现 ◆ 156.htm 检测是否连到Internet ◆ 157.htm 检测网络是否连通 ◆ 158.htm 建立Web的超链树形图 ◆ 159.htm 建立你自己的器-Properties ◆ 160.htm 建立你自己的器-查看源文件 ◆ 161.htm 建立你自己的器-打印 ◆ 162.htm 建立你自己的器-打印设置 ◆ 163.htm 建立你自己的器-发送到FontPage ◆ 164.htm 建立你自己的器-发送到Visual Interdev ◆ 165.htm 建立你自己的器-发送到软盘 ◆ 166.htm 建立你自己的器-复制 ◆ 167.htm 建立你自己的器-另存为 ◆ 168.htm 建立你自己的器-全选 ◆ 169.htm 建立你自己的器-页面设置 ◆ 170.htm 开发通信软件的技术与技巧 ◆ 171.htm 开发网络应用的5个技巧 ◆ 172.htm 利用RAS调用在VB6.0中实现拨号上网 ◆ 173.htm 利用VB提取HTML文件中的EMAIL地址 ◆ 174.htm 枚举出局域网上所有网络资源 ◆ 175.htm 面向Internet的开发工具 ◆ 176.htm 你也可以YAI--VB5中Winsock控件的使用 ◆ 177.htm 判断一个文件是否在IE的缓存中 ◆ 178.htm 启动拨号网络中的连 ◆ 179.htm 浅谈HTTP协议(二)--返回值 ◆ 180.htm 浅谈HTTP协议(一)--结构 ◆ 181.htm 如何利用 WebBrowser 控件显示 .GIF 动画? ◆ 182.htm 如何映射(中断网络磁盘) ◆ 183.htm 设计E-mail的收部分 ◆ 184.htm 设置器默认网址 ◆ 185.htm 实现端口对端口的聊天 ◆ 186.htm 使用ASP建立Http组件 ◆ 187.htm 使用VB编写纯ASP程序 ◆ 188.htm 使用vb获取网上邻居里的计算机名 ◆ 189.htm 使用VB建立Web Server ◆ 190.htm 使用Visual Basic开发通讯软件 ◆ 191.htm 使用资源工具包执行本地和远程重新启动 ◆ 192.htm 谈谈远程控制中关于搜索、控制计算机的功能 ◆ 193.htm 压缩 Html ◆ 194.htm 用ASP、VB和XML建立互联网应用程序(1) ◆ 195.htm 用ASP、VB和XML建立互联网应用程序(2) ◆ 196.htm 用ASP、VB和XML建立互联网应用程序(3) ◆ 197.htm 用ASP、VB和XML建立互联网应用程序(4) ◆ 198.htm 用COMMUNICATION控件进行数据采集(学习笔记) ◆ 199.htm 用OLE自动化Outlook ◆ 200.htm ActiveX控件用于DHTML开发 ◆ 201.htm 用VB编写ActiveX DLL实现ASP编程 ◆ 202.htm 用VB编写Windows CGI应用程序 ◆ 203.htm 用VB编写标准CGI程序(上) ◆ 204.htm 用VB编写标准CGI程序(下) ◆ 205.htm 用VB编写收发电子邮件程序 ◆ 206.htm 用VB编写网络监控软件 ◆ 207.htm 用VB编写异步多线程下载程序 ◆ 208.htm 用VB导入导出IE器收藏夹 ◆ 209.htm 用VB定制合路器 ◆ 210.htm 用VB和XML建立集中式应用程序 ◆ 211.htm 用VB将Html转换为文本文件 ◆ 212.htm 用VB开发分布式应用 ◆ 213.htm 用VB设计基于代理服务器的网络计费系统 ◆ 214.htm 用VB制作文件下载程序 ◆ 215.htm 用Visual Basic 实现无线通讯 ◆ 216.htm 用Winsock制作一套聊天室和对话系统 ◆ 217.htm 远程共享显示及声音的实现 ◆ 218.htm 远程启动机器ABC API解决方案 ◆ 219.htm 远程启动机器ABC WMI解决方案 ◆ 220.htm 在VB5中利用Winsock和msDNS控件进行 ◆ 221.htm 找出计算机上当前登录入网的用户 ◆ 222.htm 用VB5 Winsock控件创建TCP(IP)客户机 服务器程序
1,codenet5.ZIP 网络五子棋(84KB)2,mailcheck.ZIP 邮件检查程序(8KB)3,sendmail.ZIP 简单电子邮件发送程序(4KB)4,whois.ZIP Whois 示例程序(2KB)5,mailsender_plus.ZIP 发送电子邮件附件(15KB)6,mailchecker_plus.ZIP 邮件检查程序(28KB)7,wst.ZIP Winsock Terminal示例程序(7KB)8,client.ZIP 点对点聊天(客户端)(8KB)9,download.ZIP 一个下载程序(4KB)10,FTP.ZIP FTP程序(19KB)11,ping.ZIP 一个PING程序(4KB)12,server.ZIP 点对点聊天(服务器端)(9KB)13,webBroswer.ZIP 浏览器(7KB)14,downpage.ZIP 利用Microsoft Internet Transfer Control下载Web页面(3KB)15,src2html.ZIP 将VB源程序转换成HTML格式(4KB)16,netdde.ZIP 演示怎样与Netscape Navigator进行DDE通行(2KB)17,vbftp.ZIP 一个利用VB编写的FTP客户端程序(8KB)18,hostname.ZIP 一个可以利用Windows API获得机器IP地址的程序(3KB)19,cgi4vb.ZIP 加入一个用VB编写CGI的VB源程序。(你需要在Win98上首先安装20,Personal WebServer)(48KB)20,autodial.ZIP 一个简单的拨号程序 (3KB)21,iphost.ZIP 获得主机的IP地址(3KB)22,connect.ZIP 建立拨号连(2KB)23,smtp.ZIP 一个简单的SMTP邮件发送程序(5KB)24,netcon.ZIP 一个检查是否连Internet的程序(17KB)25,openurl.ZIP 建立可自动打开超连的Label,可以使用缺省的浏览器打开诸如http://www.apple.com类的地址,可以使用缺省的电子邮件程序打开类似于mailto:vbcode@21cn.com这样的电子邮件地址。(3KB)26,vb4comms.ZIP 实现通讯的例子 (27KB)27,htmlview.ZIP HTML、JPG、GIF文件浏览器(利用IE控件)(2KB)28,html.ZIP 建立自己的浏览器,(你必须已经安装IE3.X以上版本)(2KB)29,netdrive.ZIP 建立和短开网络映射驱动器的源程序(2KB)30,ftpcl.ZIP 又一个VB实现FTP客户端功能的源程序(37KB)31,cethernetaddress.ZIP 获得以太网卡的地址(3KB)32,htmledit.ZIP 一个简单的HTML文件编辑器。(6KB)33,netwatch.ZIP 监视网络联的程序,并且将获得的信息保存到一个Access数据库中。(11KB)34,tapi_src.ZIP 一个比较完成的tapi程序,包括一个包含全部tapi定义的模块和一个tapi类,包括查看以建立的tapi、拨号、中断连以及对线路和拨号进行设置。(38KB)35,rashangup.ZIP ras程序,可以查找到所有的ras连并且关闭这些连。(7KB)36,internetshort.ZIP 演示如何添加URL快捷方式到收藏夹、开始菜单和桌面上。(4KB)37,telnet.ZIP 一个只使用Winsock控件实现的Telnet程序(39KB)38,cnetworkinfo.ZIP 一个在Windows NT/2000下的程序。这个程序可以获得当前登陆的网络用户名、工作站ID、IP地址等信息。(5KB)39,nwhood.ZIP 一个可以显示网络邻居以及所有可共享目录的信息的程序。(14KB)40,connect_to_net.ZIP 检测是否连到Internet以及是通过何种方式(Modem,LAN,Proxy)连到Internet的。(3KB)41,urlincache.ZIP 一个检测一个URL是否在Cache中的程序。(3KB)42,nettools.ZIP 十分Cool的程序,一个网络工具箱,可以实现包括主机察看、网络测速、Ping、段口扫描、路由跟踪等功能。不可不看。推荐下载。(71KB)43,webserver.ZIP 一个利用VB实现的Web Server程序。(85KB)44,hotmail_check.ZIP 一个可以检查HotMail邮件的程序,你可以使用改程序检查你的Hotmail账户是否有邮件而不用登陆到www.hotmail.com上了。使用HotMail的朋友一定要下载。(56KB)45,simplyhack.ZIP 一个远程控制软件,利用TCP/IP可以控制远端机器运行程序,监视远端机器的运行状况。(不过据斑竹分析来看,这个程序有一点象Hacker程序,另外改程序使用的好像是德语,如果是英文就好了)值得下载。(119KB)46,http_download.ZIP 类似GoZilla或者GetRight那样的Http下载程序。但是有网友说无法实现下载,感兴趣的朋友可以下载看一下。(80KB)47,inetdial.ZIP 利用Wininet实现建立Internet拨号连和断开连(2KB)48,getallserveronnet.ZIP 相当不错和完整的程序。利用API获得当前网络中的所有计算机名称以及获得当前可用的服务器、SQL服务器、RAS服务器的名称、属性等。推荐下载。(21KB)49,seeopen.ZIP 一个可以看现在计算机上有那些端口已经被打开的程序。利用了Windows提供的IPHelpApi.DLL提供的输出函数来实现端口监视功能。(34KB)50,winsock_cool.ZIP 通过Winsock控件建立的客户、服务器文件传输程序。支持多用户连到服务器;支持用户名、密码管理;支持定义共享目录。对于其中的一些错误,斑竹做了修正并增加了一些注释。绝对值得下载。(169KB)51,browser.ZIP 使用ie4的dll, 实现forward, back, stop, home等功能 (6KB)52,linkpars.ZIP 从html中分析提取链(url) (5KB)53,downshow.ZIP 利用 microsoft internet transfer control 下载文件,并显示 html rtf text 类型的文件。(3KB) 54,cgi.ZIP 安装windows web server后用vb写cgi scripts (14KB)55,striptxt.ZIP 去掉html中的链后写到文本文件中 (41KB)56,winsock.ZIP 使用windsock进行网络编程的三个例子 (165KB)57,vb5mail.ZIP 演示收和发送邮件, 需要mapi controls, grid controls (15KB)58,starturl.ZIP 实现web页面中链的点击效果 (8KB)59,downloadweb.ZIP 下载web页面并显示文件中的内容 (7KB)60,weblink.ZIP 启动一个默认的页面链 (2KB)61,stocks.ZIP 从yahoo.com上下载股票的报价 (8KB)62,netsaddr.ZIP 得到netscape navigator当前显示的页面链(url) (3KB)63,irc-code.ZIP irc客户端程序 (80KB)64,news.ZIP 阅读newsgroups的例子 (34KB)65,udtchat.ZIP chat程序例子 (12KB)66,code_download_display.ZIP 下载web页面并显示html内容, 需要internet transfer control (9KB)67,chatclnt.ZIP chat客户端程序 (22KB)68,chatserv.ZIP chat服务器端程序 (25KB)69,inter.ZIP 检测你是否连上internet, 对windows 95/98有效 (2KB)70,e-checker.ZIP 使用winsock控制检测是否有邮件, 邮件服务器必须支持pop3 (30KB)71,webbrows.ZIP 一个使用ie动态库的详尽文档, 帮助你创建自己的web浏览器 (27KB)72,see4vb21.ZIP 使用smtp/pop3库实现邮件程序的例子(107KB)73,wsc4vb23.ZIP 实现通讯的例子 (128KB)74,html2text.zip 超文本转换成纯文本(3KB)75,popmail.zip 检查您的邮件(37KB)76,dmvbtest.zip 完整的邮件发送邮件源代码,可发送附件(3KB)77,hyperlinksl.zip 使用两行代码创建超链(7KB)78,emaillmapi.zip 使用 MAPI 控件发送邮件(7KB)79,icqp.zip 从 VB 应用程序中发送 ICQ 信息(13KB)80,getdomains.zip 获取局域网内所有的域和工作组(4KB)81,getip.zip 获取本机及其名和Ip地址(使用Winsock控件)(2KB)82,gifplayer.zip 播放Gif动画(使用WebBrowse控件)(28KB)83,sendmessage.zip 在局域网内发送消息(2KB)84,mapdrive.zip 映射网络驱动器(2KB)85,getipaddress.zip 获取局域网内指定机器名的Ip地址(3KB)86,speak.ZIP 网络聊天室(20KB)87,readini.ZIP INI范例(4KB)88,zhongduan.ZIP vb终端(13KB)89,pic.ZIP 看图程序(38KB)90,webliuyan.ZIP web留言簿(40KB)91,www.ZIP Www浏览器(32KB) 92,email.ZIP 收发电子邮件(16KB)93,search.ZIP 网络搜索(22KB)94,zhuce.ZIP 远程注册程序(203KB)95,mapdriver.zip 用VB影射网络驱动器、打开网络驱动器程序源(10KB)96,i038_smtp.zip用VB编写SMTP发信程序(14KB)97,i037_source.zip一个邮件检测程序(6KB)98,i036_liuliang.zipINTETNET 流量管理系统 (303KB)99,i035_fee.zip东莞的一位网友编写的一个网络计费,需要您对它进行完善(76KB)100,i034_0048831.zip用Winsock实现发信(3KB)101,i033_zm039.zip一个漂亮的浏览器(30KB)102,i032_zm037.zip完整的FTP程序,功能很强大哦(43KB)103,i031_pingtest.zip检测是否网络连(2KB)104,i030_zm036.zip可以列出并删除Internet Cache中的文件(4KB)105,i029_zm034.zip即输入字符后会出现动态的输入提示(3KB)106,i028_oledrag.zip拖放超链到自身的监视窗口中(1KB)107,i027_zbsrc.zip就是定刷新,使计数器加1,我不知是否真的能刷新,如果能的话就发达了(212KB)108,i026_HTMLViewerSample.zip浏览器示例程序(22KB)109,i025_chatserv.zip一个利用TCP/IP实现Chat功能的程序(服务器端程序)(25KB)110,i024_chatclnt.zip一个利用TCP/IP实现Chat功能的程序(客户端程序)(22KB)111,i023_Download.zip如何实现文件下载?(2KB)112,i021_browser.zip使用IE4的DLL, 实现forward, back, stop, home等功能(6KB)113,i020_downloadweb.zip下载Web页面并显示文件中的内容(7KB)114,i019_autodial.zip电话拨号源程序(3KB)115,i018_networ~1.zip显示局域网的相关信息(6KB)116,i017_e-checker.zip使用Winsock控制检测是否有邮件, 邮件服务器必须支持POP3(30KB)117,i016_map.zip用API函数映射和断开网络驱动器(3KB)118,i015_labellink.ziplabel的超级链(4KB)119,i014_zm012.zip用VB来实现代理服务器的源码(5KB)120,i013_zm032.zipAOL的在线聊天系统的客户端,Cool!(73KB)121,i012.zip如何在vb中调用i/o口的例子(10KB)122,i011.zip演示连/断开network(3KB)123,i010.zipchat程序例子(12KB)124,i009.zip简单的邮件发送例子 (13KB)125,i008.zip启动一个默认的页面链(2KB)126,i007.zip实现Web页面中链的点击效果(8KB)127,i006.zip检测你是否连上Internet, 对Windows 95/98有效(2KB)128,i005.zip实现通讯的例子(27KB)129,i004.zip一个类似WsFTP的FTP程序(63KB)130,i003.zipHTML与TEXT的转换(41KB)131,i002.zip一个简单的拨号程序(3KB)132,i001.zip一个完整的HTML编辑器,功能强大。强烈推荐!(308KB)133,GuestBook.zip 留言簿(2KB)134,vblibcgi.zip CGI32 (10KB)135,bpmail.zip 发送邮件(14KB)136,links.zip 首页管理Perl(8KB)137,vb-gb.zip 编写留言本(11KB)138,zbsrc.zip 作弊器(212KB)139,Dial.zip 拨号程序(2KB)140,130.zip 用Winsock发送邮件,可发送附件(43KB)141,194.zip 同步设置GMT标准间(4KB)142,116.zip 检查POP信箱中有无邮件(30KB)143,115.zip 使用Winsock控件发送邮件(4KB)144,114.zip Ping一个IP地址(5KB)145,58.zip 比较完整的浏览器源码(6KB)146,131.zip 一个32位的FTP客户端程序(37KB)147,143.zip 一个使用IE动态库的详尽文档, 帮助你创建自己的Web浏览器(27KB)148,177.zip 检测你是否连上Internet (2KB)149,fakemailer.zip 又1个用Winsock控件发送Email的例子(22KB)150,CInetStatus.zip 控制拨号连的类,提供拨号,挂段,脱机工作等方法,检测连状态 (8KB)151,网络五子棋.zip 网络五子棋(24KB)152,ChPass.zip 修改 Network 网的密码(15KB)153,CheckDrives.zip 检测所有驱动器的类型(3KB)154,CustEditXML.zip 一个 XML 的编辑器(16KB)155,ieseek197575.zip 网吧监控软件(9KB)156,run.zip 启动Windows程序自动运行(放入到注册表的Run)(2KB)157,HappyRun.zip 一种让共享软件的间过期的软件(49KB)158,mapi_all_v.zip 用MAPI控件批量发送文件(10KB)159,0046929.zip 用 Winsock 实现聊天的程序(3KB)160,0048826.zip 用Winsock实现文件的下载(2KB)161,0048831.zip 用Winsock实现发信(3KB)162,004101102.zip TreeView的基本操作(5KB)163,00415944.zip 用MAPI发送邮件(4KB)
第1章 串行通信原理与设计 1 1.1 串行通信基本概念 1 1.1.1 串行通信特点 1 1.1.2 串行通信传输方式 2 1.1.3 数据纠错与检错 2 1.1.4 传输速率与距离 3 1.2 串行传输协议 4 1.2.1 异步传输协议 4 1.2.2 面向字符的同步传输协议 5 1.2.3 面向比特的同步传输协议 7 1.3 串行口标准 9 1.3.1 EIA RS-232C标准 9 1.3.2 RS-423A、RS-422A和RS-485标准 12 1.3.3 USB口标准 14 1.4 串口硬件设计 15 1.4.1 串口应用设计流程 15 1.4.2 Windows下的串口资源 15 1.4.3 DCE与DTE设备的识别方法 16 1.4.4 握手处理 16 1.4.5 RS-232C与RS-485口转换 17 1.4.6 地及隔离技术 17 1.5 小结 20 第2章 使用MSComm控件编程 21 2.1 MSComm控件属性及事件 21 2.1.1 MSComm最常用的属性 21 2.1.2 与输入操作有关的属性 23 2.1.3 与输出操作有关的属性 24 2.1.4 与传输控制有关的属性 25 2.1.5 MSComm控件的事件 26 2.2 对不同类型数据的处理方法 26 2.2.1 使用MSComm控件发送与收字符串 27 2.2.2 使用MSComm控件发送与收二进制数据 27 2.3 MSComm错误处理方法 28 2.3.1 关于发送缓冲区 28 2.3.2 关于收缓冲区 29 2.3.3 收数据的实际处理方法 29 2.4 控件编程 30 2.4.1 加载及使用控件 31 2.4.2 初始化及打开串口 36 2.4.3 串口事件处理 37 2.4.4 关闭串口 38 2.4.5 关于协议的问题 38 2.5 通信编程实例 38 2.5.1 程序功能 38 2.5.2 界面设计 38 2.5.3 变量声明 40 2.5.4 创建串口 41 2.5.5 设置串口 42 2.5.6 打开串口 43 2.5.7 关闭串口 43 2.5.8 收数据处理 44 2.5.9 实际传输文件截图 45 2.6 程序发布问题 45 2.7 小结 45 第3章 使用WinAPI串口编程 47 3.1 API串口编程概述 47 3.2 采用同步查询方式的编程方法 47 3.2.1 创建串口 48 3.2.2 关闭串口 53 3.2.3 发送数据 53 3.2.4 收数据 53 3.2.5 定收数据的方法 54 3.3 采用重叠I/O方式的编程方法 55 3.3.1 定义全局变量 55 3.3.2 创建串口 55 3.3.3 发出读写操作 56 3.3.4 读写线程函数的建立 57 3.3.5 关闭串口 61 3.4 采用事件驱动方式的编程方法 61 3.4.1 定义全局变量 61 3.4.2 打开串口及开启事件线程 62 3.4.3 发送数据 64 3.4.4 自定义消息函数读取数据 65 3.4.5 关闭串口及关闭事件线程 67 3.5 编程实例 67 3.5.1 程序功能 67 3.5.2 界面设计 68 3.5.3 变量声明 69 3.5.4 设置串口 70 3.5.5 打开串口 72 3.5.6 关闭串口 73 3.5.7 发送字符 73 3.5.8 命令的有效性处理 74 3.5.9 实际字符传送截图 75 3.6 小结 76 第4章 多线程编程 77 4.1 多线程基本概述 77 4.1.1 线程与进程 77 4.1.2 何使用多线程 78 4.1.3 多线程串口的应用 78 4.2 线程的操作 78 4.2.1 创建线程 78 4.2.2 终止线程 80 4.2.3 关于内存泄漏 81 4.3 线程间通信 81 4.3.1 使用全局变量 81 4.3.2 使用自定义消息 81 4.4 线程同步 82 4.4.1 使用临界区(Critical Section) 82 4.4.2 使用互斥对象(Mutex) 83 4.4.3 使用信号量(Semaphore) 84 4.4.4 使用事件(Event) 84 4.4.5 各种方法的比较 85 4.5 多线程串口程序设计 85 4.5.1 多线程的应用框架 85 4.5.2 相关的声明 86 4.5.3 创建线程 87 4.5.4 编写线程函数 87 4.5.5 编写消息响应函数 88 4.5.6 线程的结束 88 4.6 小结 89 第5章 TAPI编程 91 5.1 关于TAPI 91 5.1.1 什么是TAPI 91 5.1.2 Windows中的TAPI系统架构 91 5.1.3 Windows中的TAPI电话服务类型 92 5.2 TAPI 2.X介绍 93 5.2.1 基本概念 93 5.2.2 TAPI应用程序结构 93 5.2.3 常用函数介绍 94 5.3 CTapi14类介绍 98 5.3.1 变量/函数声明 98 5.3.2 初始化操作 100 5.3.3 创建函数 100 5.3.4 呼叫函数 101 5.3.5 回调函数处理方式 103 5.3.6 与回调相关的函数 103 5.3.7 处理呼叫状态的函数 105 5.3.8 处理连状态的函数 108 5.3.9 挂机函数 109 5.3.10 通信状态显示函数 110 5.3.11 延函数 111 5.4 使用CTapi14类的编程实例 111 5.4.1 程序功能 111 5.4.2 界面设计 111 5.4.3 CTapi14类的使用方法 112 5.4.4 变量/函数声明 113 5.4.5 电话操作函数 114 5.4.6 消息处理函数 115 5.4.7 显示信息函数 117 5.4.8 实际使用截图 117 5.5 小结 118 第6章 计算机与单片机通信 119 6.1 单片机的串口原理 119 6.1.1 串口结构 119 6.1.2 串口寄存器及中断 120 6.2 串行通信硬件设计 121 6.2.1 常用口芯片介绍 121 6.2.2 口电路 121 6.3 串行口通信参数设置 122 6.3.1 波特率的设置 122 6.3.2 奇偶校验位的使用方法 123 6.3.3 通信协议约定 123 6.4 单片机的串口编程方法 124 6.4.1 功能描述 124 6.4.2 通信协议 124 6.4.3 初始化串口及寄存器 124 6.4.4 编写中断服务程序 125 6.5 计算机界面设计 128 6.5.1 功能描述 128 6.5.2 界面设计 128 6.6 计算机端程序设计 129 6.6.1 头文件引用及变量声明 129 6.6.2 初始化控件 131 6.6.3 向单片机发出请求 132 6.6.4 在控件事件中收数据 133 6.6.5 超器的编程 140 6.6.6 关闭串口 141 6.7 小结 142 第7章 计算机与PLC通信 143 7.1 PLC的串口通信 143 7.1.1 PLC的通信方式 143 7.1.2 计算机与PLC通信流程 144 7.1.3 与通信相关的寄存器 144 7.1.4 与通信相关的指令 148 7.1.5 通信中断事件 149 7.1.6 通信中断指令 150 7.1.7 硬件连线及设置 151 7.1.8 PC/PPI电缆切换间的影响 151 7.2 PLC通信编程 152 7.2.1 功能描述 152 7.2.2 通信协议 152 7.2.3 程序结构及变量说明 153 7.2.4 主程序 154 7.2.5 初始化 154 7.2.6 发送与收处理 155 7.3 计算机界面设计 158 7.3.1 主界面设计 158 7.3.2 设置对话框设计 159 7.4 计算机程序设计 160 7.4.1 功能描述 160 7.4.2 变量/函数声明 160 7.4.3 初始化代码 161 7.4.4 参数配置 162 7.4.5 读串口操作 166 7.4.6 写串口操作 169 7.4.7 收数据处理 172 7.4.8 命令有效性处理 178 7.4.9 实际传输数据截图 179 7.5 小结 180 第8章 计算机与Modem的通信 181 8.1 Modem的工作原理 181 8.1.1 Modem的基本工作原理 181 8.1.2 Modem的功能介绍 182 8.1.3 内置Modem与外置Modem 182 8.2 Modem的通信标准 183 8.2.1 调制协议 183 8.2.2 差错控制协议 184 8.2.3 数据压缩协议 184 8.2.4 文件传输协议 184 8.3 Modem的AT命令 185 8.3.1 Modem工作状态切换 185 8.3.2 AT命令串简介 187 8.3.3 常用基本AT命令分类 187 8.3.4 呼叫与应答相关命令 187 8.3.5 状态切换命令 190 8.3.6 握手相关命令 191 8.3.7 基本AT命令的简单测试方法 192 8.3.8 常用寄存器命令及寄存器含义 194 8.3.9 使用PSTN进行串行通信的工作流程 195 8.4 使用Modem远程传输文件程序设计 196 8.4.1 功能描述 196 8.4.2 通信流程 197 8.4.3 XModem通信协议 198 8.4.4 界面设计 199 8.4.5 变量声明 200 8.4.6 初始化 201 8.4.7 串口配置与操作 202 8.4.8 发送文件 204 8.4.9 收文件 205 8.4.10 OnComm事件函数 206 8.4.11 建立超器 228 8.5 小结 230 第9章 两台计算机间通信 231 9.1 通信方式介绍 231 9.2 通信协议 232 9.2.1 通信流程 233 9.2.2 数据包格式 233 9.3 通信实现思路 234 9.3.1 功能描述 234 9.3.2 通信事件的处理方法 235 9.3.3 各种操作状态的含义 235 9.4 界面设计 237 9.4.1 主界面设计 237 9.4.2 设置对话框设计 238 9.5 程序设计 239 9.5.1 变量/函数声明 239 9.5.2 初始化代码 241 9.5.3 参数配置 242 9.5.4 发送文件 246 9.5.5 事件消息响应函数 248 9.5.6 命令的有效性处理 267 9.5.7 自定义功能函数 269 9.5.8 程序测试 274 9.6 小结 274 第10章 软件传真机 275 10.1 传真的基本知识 275 10.1.1 工作原理 275 10.1.2 传真机的分类 276 10.1.3 传真机通信规程 277 10.2 关于传真精灵SmartFax 278 10.2.1 主要功能 278 10.2.2 发送传真函数 278 10.2.3 收传真函数 281 10.2.4 其他功能函数 283 10.2.5 如何使用传真精灵 284 10.3 软件传真机程序设计 285 10.3.1 功能介绍 285 10.3.2 界面设计 286 10.3.3 关于头文件的引用 289 10.3.4 变量/函数声明 289 10.3.5 初始化操作 291 10.3.6 程序流程分析 293 10.3.7 关于TAPI操作的函数 296 10.3.8 发送传真相关函数 304 10.3.9 收传真相关函数 306 10.3.10 传真消息响应函数OnSmartFax() 309 10.3.11 传真参数相关操作函数 317 10.3.12 其他功能函数 322 10.4 小结 324 第11章 计算机与射频卡通信 325 11.1 射频卡简介 325 11.1.1 射频卡工作原理 325 11.1.2 射频卡的分类 326 11.1.3 射频卡的优点 327 11.1.4 射频卡的应用 327 11.2 射频卡的应用框架 327 11.3 MIFARE卡介绍 328 11.3.1 TYPE A 与TYPE B 328 11.3.2 TYPE A 卡的初始化与防冲突 329 11.3.3 MIFARE 1型卡的存储结构 333 11.3.4 MIFARE 1型卡存取控制与数据区的关系 334 11.4 射频卡模块介绍 336 11.4.1 MCM200/MCM500概述 336 11.4.2 MCM200/MCM500口简介 337 11.4.3 MCM200/MCM500读写操作过程 338 11.4.4 ZLG500A读写模块介绍 339 11.5 射频卡应用的设计 340 11.5.1 读写器成品的设计方法 340 11.5.2 使用射频卡模块的设计方法 340 11.6 小结 340 第12章 组态王的应用 341 12.1 组态王参数设置 341 12.1.1 RS-485板卡的使用方法 341 12.1.2 串口通信方式 342 12.1.3 串口参数设置 346 12.2 组态王通信协议 346 12.2.1 寄存器定义 346 12.2.2 读命令格式 347 12.2.3 写命令格式 347 12.2.4 命令格式中的符号说明 348 12.2.5 命令举例说明 349 12.3 组态王端的程序设计 350 12.3.1 程序功能 350 12.3.2 界面设计 350 12.3.3 KingComClient设备的设置 352 12.3.4 变量定义 352 12.3.5 命令语言 353 12.4 计算机端的程序设计 353 12.4.1 功能描述 353 12.4.2 界面设计 354 12.4.3 变量/函数声明 355 12.4.4 初始化代码 356 12.4.5 串口配置与操作 357 12.4.6 串口事件响应函数 361 12.4.7 自定义功能函数 368 12.4.8 模拟数值的产生 372 12.4.9 实际通信截图 372 12.5 小结 374 第13章 云台及镜头控制系统 375 13.1 云台及镜头的应用概况 375 13.1.1 数字监控系统概述 375 13.1.2 监控系统组成 375 13.2 如何控制云台与镜头 376 13.2.1 云台及镜头的设备简介 376 13.2.2 云台及镜头的控制原理 377 13.2.3 解码器概述 377 13.2.4 常用通信协议 377 13.3 串口控制云台和镜头程序设计 378 13.3.1 硬件线说明 378 13.3.2 通信协议介绍 379 13.3.3 程序功能 380 13.3.4 界面设计 380 13.3.5 变量/函数声明 383 13.3.6 初始化操作 386 13.3.7 按下与弹起控制的实现方法 388 13.3.8 串口操作 407 13.3.9 发送数据 408 13.3.10 程序测试截图 417 13.4 小结 417 附录 串口调试 419
目录 网络驱动程序设计指南 1 第一部分 网络驱动程序 2 第一章 网络驱动程序设计指南的向导 3 第二章 内核模式驱动程序的网络结构 6 2.1 Windows 2000 网络结构和OSI模型 6 2.2 NDIS驱动程序 7 2.2.1 NDIS微端口驱动程序 7 2.2.2 NDIS中间层驱动程序 8 2.2.3 NDIS协议驱动程序 9 2.3 TDI驱动程序 9 2.4 网络驱动程序环境 9 2.4.1 无连环境的网络驱动程序 10 2.4.2 面向连环境下的网络驱动程序 10 2.4.3 WAN网络驱动程序的环境 11 第三章 网络驱动程序编程要点 13 3.1 可移植性 13 3.2 多处理器支持 13 3.3 IRQL 14 3.4 同步和指示 14 3.5 包结构 16 3.6 使用共享内存 17 3.7 异步I/O和完成函数 17 第二部分 微端口NIC驱动程序 19 第一章 NDIS NIC微端口驱动程序 20 1.1 NIC微端口驱动程序类型 20 1.2 网络口卡支持 20 1.3 微端口驱动程序代码的重要特征 22 1.3.1 MiniportXxx函数 22 1.3.2 与NDIS库链 22 1.3.3 微端口适配器环境 22 1.3.4 VC环境 23 1.3.5 网络OID 23 1.4 驱动程序例子 24 第二章 NIC微端口操作和函数概要 25 2.1 NIC微端口操作 25 2.1.1 初始化NDIS库和注册微端口驱动程序 25 2.1.2 注册网络口卡 25 2.1.3 对查询和设置微端口信息作出响应 26 2.1.4 产生,激活,去活,和删除虚连 26 2.1.5 发送数据 27 2.1.5.1 多包发送 27 2.1.5.2 单包发送 28 2.1.6 指示和传递收的数据 28 2.1.6.1 多包收 29 2.1.6.2 单包收 29 2.1.7 指示状态 30 2.1.8 复位网络口卡 30 2.1.9 终止一个微端口NIC驱动程序 30 2.2 微端口上层函数 30 2.2.1 无连微端口的上层函数 31 2.2.2 面向连微端口的上层函数 32 2.3 由微端口调用的NDIS函数 33 2.3.1 NDIS提供的初始化和注册函数 34 2.3.2 NDIS提供的硬件设置函数 35 2.3.3 NDIS提供的I/O端口函数 36 2.3.4 NDIS数据的与DMA相关的函数 37 2.3.5 NDIS提供的中断处理函数 38 2.3.6 NDIS提供的同步函数 38 2.3.7 NDIS提供的状态函数 39 2.3.8 NDIS为无连微端口提供的发送和收函数 39 2.3.9 NDIS为面向连微端口提供的发送和收函数 40 2.3.10 NDIS提供的带外数据宏 41 2.3.11 NDIS提供的包和缓存处理函数 41 2.3.12 NDIS提供的支持函数 43 2.3.13 NDIS提供的媒体相关宏 46 第三章 NIC微端口驱动程序入口点和初始化 47 3.1 NDIS微端口驱动程序入口函数 47 3.1.1 初始化包裹 47 3.1.2 注册微端口 48 3.1.2.1 指定NDIS版本号 48 3.1.2.2 注册MiniportXxx函数 48 3.1.2.3 为中断支持的注册处理程序 50 3.1.2.4 为无连微端口选择一个发送函数 51 3.1.2.5 为无连微端口选择收函数 51 3.1.2.6 注册一个分配完成处理程序 52 3.1.2.7 注册一个挂起检测(CheckForHang) 处理程序 52 3.2 NDIS微端口初始化 53 3.2.1 注册一个NIC 53 3.2.1.1 分配一个适配器指定的环境区域 54 3.2.1.2 读取配置信息 54 3.2.1.3 注册NIC 54 3.2.2 声明资源 55 3.2.2.1 分配内存 55 3.2.2.2 注册端口 56 3.2.2.3 总线管理器DMA设备初始化 56 3.2.2.4可编程I/O设备初始化 57 3.2.2.5 内存映射设备初始化 58 3.2.2.6 从属DMA设备初始化 58 3.2.3 注册一个中断 59 3.2.4 注册一个关闭函数 59 3.2.5 初始化轮询钟 59 3.2.6 在初始化当中的同步 60 3.2.7 在初始化处理错误 60 3.3 查询微端口信息 61 3.4 减少微端口初始化间 61 第四章 数据传输 64 4.1 中断处理 64 4.2 DPC处理程序 66 4.3 带外(OOB)数据包 66 4.3.1 等待发送的OOB数据 67 4.3.2 收的OOB数据 68 4.4 发送包 69 4.4.1 无连微端口的多包传送 70 4.4.1.1 串行微端口的多包传送 70 4.4.1.2 非串行微端口的多包传送 71 4.4.2 无连微端口的单包发送 71 4.4.3 面向连微端口的多包发送 72 4.4.4 发送数据前的内存同步 73 4.4.5 发送步骤 74 4.4.5.1 在总线控制器DMA NIC上发送包 74 4.4.5.2 在PIO设备上发送单包 76 4.4.5.3 使用板上内存发送包 77 4.5 非串行微端口 78 4.5.1 非串行微端口的NDIS要求 78 4.5.2 非串行微端口的驱动程序内部要求 78 4.6 收数据 79 4.6.1 无连和面向连微端口的多包收 79 4.6.2 无连微端口的单包收 82 4.6.3 收数据的高速缓存(Cache)因素 83 4.6.4 收数据的步骤 83 4.6.4.1 收期间的包管理 84 4.6.4.2 在总线控制器DMA NIC上收数据 84 4.6.4.3 在PIO NIC上收数据 85 4.6.4.4 在内存映射设备上收数据 85 4.7 保持统计量 85 4.8 802.1P 包的优先权 86 4.8.1 查询802.1p优先权支持 87 4.8.2 802.1优先权的包支持 87 4.8.3 为发送和收指定包的大小 88 4.8.4 默认情况下禁止802.1p的优先权支持 88 第五章 获取和设置WMI的微端口信息及NDIS支持 89 5.1 NDIS管理信息和OID 89 5.2 查询微端口信息 89 5.2.1 无连微端口的查询 90 5.2.2 面向连微端口的查询 91 5.3 设置微端口信息 92 5.3.1 为无连微端口设置信息 92 5.3.2 为面向连微端口设置信息 92 5.3.3 设置微端口信息的机 93 5.4 报告硬件状态 93 5.5 WMI的NDIS支持 94 5.5.1 用WMI注册与注销NDIS微端口 94 5.5.2 OID和微端口状态的GUID映射 94 5.5.3 支持命名VC 94 5.5.4 NDIS支持的WMI操作 95 5.5.5 向WMI注册标准微端口OID 95 5.5.6 向WMI注册的标准微端口状态 97 5.5.7 定制OID与状态指示 98 5.5.7.1 填充NDIS_GUID 98 5.5.7.2 包括MOF文件 99 第六章 微端口的电源管理 100 6.1 电源管理的需求与可选的OID 100 6.2 网络设备电源状态 101 6.3 网络唤醒事件 102 6.3.1 连改变唤醒 102 6.3.2 网络唤醒帧 102 6.3.3 魔包唤醒 103 6.3.4 启用唤醒事件 103 6.3.5 处理唤醒事件 103 6.4 处理OID_PNP_QUERY_POWER 104 6.5 处理OID_PNP_SET_POWER 104 6.5.1 转入睡眠状态 104 6.5.2 转入工作状态 104 6.6 早期微端口的电源管理 105 第七章 重置,停止和关闭 106 7.1 硬件重置(Reset) 106 7.2 停止(Halt)处理程序 106 7.3 关闭(Shutdown)处理程序 107 第八章 广域网微端口 NIC驱动程序 109 8.1 RAS 体系结构 109 8.2 NDISWAN 概述 111 8.3 网络卡、绑定、和连 113 8.4 广域网微端口驱动程序的实现 114 8.4.1 标准广域网微端口驱动程序与局域网微端口驱动程序的区别 115 8.4.2 CoNDIS广域网微端口驱动程序的附加特性 115 8.4.3 广域网微端口驱动程序提供的服务 116 8.4.3.1 注册为广域网微端口驱动程序 116 8.4.3.2 查询广域网微端口驱动程序的信息 117 8.4.3.3 设置广域网小段口驱动程序的状态 122 8.4.3.4 在广域网微端口驱动程序上发送数据 123 8.4.4 广域网微端口驱动程序做出的指示 125 8.4.4.1 指示从标准广域网微端口驱动程序收数据 125 8.5 广域网包的组帧 128 8.5.1 异步帧结构 128 8.5.2 X.25帧结构 128 8.5.3 ISDN和Switched-56K帧结构 128 8.6 标准NDIS之上的电话服务扩展 128 8.6.1 NDISTAPI概述 129 8.6.2 线路设备、地址和呼叫 129 8.6.3 设置和查询请求 130 8.6.4 保持状态信息 130 8.6.5 建立句柄 131 8.6.6 TAPI注册 131 8.6.7 TAPI初始化 132 8.6.8 打开线路 133 8.6.9 受内入呼叫 133 8.6.10 产生TAPI呼叫 134 8.6.11 主动事件处理 135 8.6.12 Line-Up指示 135 8.6.13 关闭呼叫线路 137 8.6.14 NDISTAPI口 139 8.7 使用支持电话服务的CoNDIS扩展 143 8.7.1 NDPROXY概述 143 8.7.2 CoNDIS TAPI注册 144 8.7.3 CoNDIS TAPI初始化 144 8.7.4 建立外出呼叫 146 8.7.5 受内入呼叫 147 8.7.6 CoNDIS TAPI关闭 150 8.7.7 语音流对呼叫管理器的要求 151 8.7.7.1 响应OID_CO_TAPI_LINE_CAPS查询 151 8.7.7.2 为外出呼叫指定参数 151 8.7.7.3 为内入呼叫指定参数 152 8.7.8 在面向连NDIS之上支持电话服务的非广域网专用的扩展 152 第九章 任务卸载 153 9.1 查询任务卸载能力 153 9.1.1 报告NIC的校验和性能 154 9.1.2 报告NIC的IP安全性性能 155 9.1.3 报告NIC的TCP包分段性能 157 9.2 启用任务卸载能力 157 9.3 停用任务卸载能力 158 9.4 访问Per-Packet信息 158 9.5 卸载TCP/IP校验和任务 159 9.6 卸载IP安全任务 161 9.7 卸载大TCP包分段 164 9.8 卸载组合 165 9.9 使用注册表键值激活和禁止任务卸载 166 第十章 负载平衡和失效替换 166 10.1 关于LBFO 167 10.2 指定对LBFO的支持 168 10.3 在微端口驱动程序上实现LBFO 168 10.3.1 初始化微端口束 168 10.3.2 平衡微端口驱动程序的工作量 169 10.3.3 在主微端口失效后提升一个次微端口 169 第十一章 快速转发路径 169 11.1 关于FFP 170 11.1.1 使用一个NIC的FFP 170 11.1.2 使用多个NIC的FFP 170 11.1.3 IP转发 171 11.1.4 FFP和包过滤 171 11.2 NIDS中的FFP支持 172 11.3 为IP转发在微端口实现FFP 172 第十二章 带WDM低级口的微端口驱动程序 174 12.1 WDM低层微端口 174 12.2 注册WDM低层的微端口函数 174 12.3 初始化WDM低层微端口 175 12.4 发布命令与远程设备通信 176 12.4.1 在总线上发送包 176 12.4.2 在总线上收包 176 12.5 WDM低层的实现要点 176 12.6 WDM低层的编译标志 177 第十三章 IrDA微端口NIC驱动程序 178 13.1 IrDA微端口驱动程序简述 178 13.2 IrDA体系结构 179 13.3 IrDA协议驱动程序 179 13.4 IrDA介质特征 179 13.4.1 通信连速度 180 13.4.2 通信连回转间 180 13.4.3 收器同步 181 13.5 IrLAP帧格式 182 13.5.1 帧格式简述 182 13.5.2 帧信息的使用 183 13.5.3 地址成员 183 13.6 IrDA微端口驱动程序包编码方案 183 13.6.1 SIR编码 184 13.6.2 MIR编码 184 13.6.3 FIR编码 184 13.7 发送和收帧序列 185 13.8 即插即用 185 13.8.1 非即插即用外部串行连SIR适配器 185 13.8.2 非即插即用内部SIR适配器或者象串口一样错误地呈现于外的内部SIR适配器 186 13.8.3 即插即用外部串行连SIR适配器 186 13.8.4 即插即用内部SIR适配器 186 13.8.5 非即插即用总线连FIR适配器 187 13.8.6 即插即用总线连FIR适配器 187 第三部分NDIS中间层驱动程序和TDI驱动程序 189 第一章 NDIS中间层驱动程序 189 1.1中间层驱动程序的DriverEntry函数 191 1.1.1 注册NDIS中间层驱动程序 191 1.1.1.1注册中间层驱动程序的Miniport 192 1.1.1.2注册中间层驱动程序的协议 194 1.2 中间层驱动程序的动态绑定 196 1.2.1 打开中间层驱动程序下层的适配器 197 1.2.2 微端口初始化 198 1.2.3 中间层驱动程序查询和设置操作 199 1.2.4作为面向连客户程序注册中间层驱动程序 201 1.3中间层驱动程序数据包管理 203 1.4 中间层驱动程序的限制 205 1.5 中间层驱动程序收数据 206 1.5.1下边界面向无连的中间层驱动程序收数据 206 1.5.2下边界面向连的中间层驱动程序收数据 208 1.5.3向高层驱动程序指示收数据包 209 1.6通过中间层驱动程序传输数据包 210 1.6.1传递介质相关信息 211 1.7处理中间层驱动程序的PnP事件和PM事件 212 1.7.1处理OID_PNP_XXX查询和设置 213 1.7.2中间层驱动程序ProtocolPnPEvent处理程序的实现 214 1.7.3处理规定的电源请求 214 1.8中间层驱动程序复位操作 215 1.9中间层驱动程序拆除绑定操作 216 1.10中间层驱动程序状态指示 217 第二章 NDIS协议驱动程序 219 2.1 协议DriverEntry及其初始化 220 2.1.1注册NDIS协议驱动程序 220 2.1.2 打开中间层驱动程序低层的适配器 223 2.1.3 协议驱动程序查询和设置操作 224 2.1.4作为呼叫管理器或者面向连客户程序进行注册 225 2.2 协议驱动程序数据包管理 229 2.3 协议驱动程序的动态绑定 230 2.4 协议驱动程序收数据 231 2.4.1下边界面向无连的中间层驱动程序收数据 231 2.4.1.1 在中间层驱动程序中实现ProtocolReceivePacket处理程序 232 2.4.1.2 在协议驱动程序中实现ProtocolReceive处理程序 233 2.4.1.3 从面向无连协议驱动程序中访问OOB数据信息 234 2.4.2 面向连协议驱动程序收数据 234 2.4.2.1 ProtocolCoReceivePacket处理程序实现 235 2.4.2.2 从面向连协议驱动程序中访问OOB数据信息 235 2.5 发送协议驱动程序创建的数据包 236 2.5.1 从面向无连协议驱动程序发送数据包 236 2.5.1.1面向无连协议驱动程序传递介质相关信息 237 2.5.2 面向连协议驱动程序发送数据包 238 2.5.2.1面向连协议驱动程序传递介质相关信息 238 2.6处理协议驱动程序的PnP事件和PM事件 239 2.7协议驱动程序复位操作 240 2.8协议驱动程序拆除绑定操作 241 2.9协议驱动程序状态指示 241 第三章 TDI传输器及其客户 243 3.1 传输驱动程序口(TDI) 243 3.2 TDI设备对象 245 3.3 TDI文件对象 246 3.3.1代表传输地址的文件对象 247 3.3.2代表连端点的文件对象 247 3.3.3代表控制信道的文件对象 248 3.4 TDI传输驱动程序例程 248 3.5 TDI核心模式客户交互 249 3.6 TDI请求及事件 250 第四章 TDI例程、宏和回调 251 4.1 TDI驱动程序初始化 251 4.1.1 注册TDI传输驱动程序 252 4.1.2 卸载和注销TDI传输驱动程序 252 4.2 TDI驱动程序调度例程 253 4.3 TDI IOCTL请求 254 4.4 TDI 客户回调 255 4.5 TDI 库函数和宏 257 第五章 TDI操作 260 5.1打开传输地址 260 5.2打开连端点 261 5.3打包并提交IOCTL请求 262 5.4设置和查询信息 262 5.5建立端端连 263 5.6发送和收面向连数据 264 5.7发送和收无连数据 266 5.8面向连和面向无连传输 267 5.9请求传输相关操作 268 5.10错误通知 268 5.11断开端端连 268 5.12关闭连端点 269 5.13关闭传输地址和控制信道 269 第六章Windows Sockets的传输助手DLLS 271 6.1 Windows Sockets Helper DLL结构 271 6.2用WSH DLL通信 271 6.3配置WSH DLL 272 6.4WSH DLL同步 272 6.5用WSH DLL支持连和断开数据 273 6.5.1客户应用程序和连数据 273 6.5.2服务器应用程序和连数据 273 6.5.3断连(disconnect)数据 274 6.6WSH DLL函数总览 274 第四部分面向连的网络驱动程序口标准(NDIS) 276 第一章 面向连的网络驱动程序口标准(NDIS) 276 1.1面向连环境 276 1.2使用AFs,VCs,SAP和Parties 277 1.2.1地址族 277 1.2.2虚连 277 1.2.3 SAPs 278 1.2.4 Parties 278 1.3服务质量 278 1.4MCM和呼叫管理器有何不同 278 1.4.1初始化的不同 279 1.4.2对NdisXxx函数调用的不同 279 1.4.3虚连的不同 279 1.5面向连间特性 280 1.6面向连操作 280 1.6.1面向连操作总结 280 1.6.1.1由客户执行的面向连操作 280 1.6.1.2由呼叫管理器执行的面向连操作 281 1.6.1.3由微端口执行的面向连操作 282 1.6.2地址族和SAPs上的操作 283 1.6.2.1注册并打开一个地址族 283 1.6.2.2注册一个SAP 284 1.6.2.3注销SAP 285 1.6.2.4关闭一个地址族 285 1.6.3 VCs上的操作 286 1.6.3.1创建VC 286 1.6.3.2激活VC 287 1.6.3.3使VC去活 288 1.6.3.4删除VC 289 1.6.4创建呼叫 289 1.6.4.1进行呼叫 290 1.6.4.2指示内入呼叫 291 1.6.5改变活动VC的QoS 292 1.6.5.1客户发起的改变呼叫参数请求。 292 1.6.5.2改变呼叫参数的内入请求 293 1.6.6增加和删除Parties 293 1.6.6.1把一个Party加入到多点呼叫 293 1.6.6.2从多点呼叫中删除Party 294 1.6.6.3从多点呼叫中删除一个Party的内入请求 295 1.6.7发送并收数据 295 1.6.7.1在VC上发送包 295 1.6.7.2收VC上的包 296 1.6.8断开呼叫 297 1.6.8.1客户发起的关闭呼叫请求 297 1.6.8.2关闭呼叫的内入请求 298 1.6.9获取并设置信息 298 1.6.9.1查询或设置信息 298 1.6.9.2指示微端口状态 299 1.6.10重置 299 第五部分 安装网络组件 301 第一章 安装网络组件 301 1.1用于安装网络组件的组件和文件 301 1.2创建网络INF文件 302 1.2.1网络INFS文件名的约定 302 1.2.2网络INF文件的版本节 302 1.2.3网络INF文件的模型节 303 1.2.4 INF文件的DDInstall节 304 1.2.5删除节 306 1.2.6 ControlFlags节 306 1.2.7网络INF文件的add-registry-sections 306 1.2.7.1设置静态参数 307 1.2.7.2 为WAN适配器说明WAN端点 307 1.2.7.3为ISDN适配器说明ISDN键和值 307 1.2.7.4安装多协议WAN NICs 309 1.2.7.5请求安装另一个网络组件 310 1.2.7.6说明NetCLient组件的名字和提供者 310 1.2.7.7增加HelpText值 311 1.2.7.8为通知对象增加注册值 311 1.2.7.9向Ndi键增加服务相关值 311 1.2.7.10说明绑定口 312 1.2.7.11为高级属性页说明配置参数 314 1.2.7.12为网络适配器说明定制属性页 315 1.2.7.13说明过滤器服务值 315 1.2.7.14说明束成员关系 317 1.2.7.15 Window 2000中不用的 Window 95/98 Ndi值和键 317 1.2.8 DDInstall.Service节 318 1.2.9 NetworkProrider和PrintProvider节 318 1.2.9.1包含一个NetworkProvider节 319 1.2.9.2 包括一个PrintProvider节 319 1.2.10 Winsock节 320 1.2.11网络组件安装需求总结 322 1.2.11.1网络适配器的安装需求 322 1.2.11.2网络协议安装要求 323 1.2.11.3中间层网络驱动程序的安装需求 324 1.2.11.4网络过滤器驱动程序的安装需求 325 1.2.11.5网络客户的安装需求 326 1.2.11.6网络服务的安装请求 327 第二章 网络组件的通知对象 328 2.1关于通知对象 328 2.1.1 通知对象图 329 2.1.2通知类型 329 2.1.3网络组件的安装 329 2.1.4删除网络组件 330 2.1.5升级网络组件 330 2.1.6显示并改变属性 330 2.1.7网络配置 331 2.2创建通知对象 331 2.2.1装载通知对象DLL和类对象 331 2.2.2定义通知对象 332 2.2.3创建并初始化通知对象实例 332 2.2.4安装,升级和删除组件 333 2.2.5为组件生成属性页 333 2.2.6设置环境来显示属性 334 2.2.7评价网络配置的变化 334 2.2.8将组件变化加入注册表 335 2.2.9配置组件驱动程序 335

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧