号量对象。CSemaphore 只有一个构造函数CSemaphore:: CSemaphore,它的函数原型如下:
CSemaphore::CSemaphore(
LONG lInitialCount = 1,
LONG lMaxCount = 1,
LPCTSTR pstrNcom = NULL,
LPSECURITY_ATTRIBUTES lpsaAttributes = NULL
);
函数中主要参数的意义如下。
? lInitialCount:指定Semaphore 对象初始的使用数目。必须大于等于零,小于等于
lMaxCount。
? lMaxCount:指定Semaphore 对象最大的使用数目
? pstrNcom:指定Semaphore 对象的名称。
? lpsaAttributes:指定Semaphore 对象的安全属xìng。
枫叶文学网www.fywxw.com
第9 章 多线程
·243·
9.3.6 示例:串口通信
本节结合前面介绍的多线程计数,介绍Windows 串口通信技术,通过建立多个线程,利
用串口进行数据的发送。通过使用Mutex 控制串口的发送,使得同一时间只有一个线程利用
串口发送数据。下面给出详细的过程。
实例9-3:串口通信实例。源代码在光盘中“\09\实例9-3\SComm”目录下。
1.创建工程
? 首先利用VC++的AppWizard 创建一个基于对话框的工程SComm。所有设置都采用默
认选项。
? 为对话框加入串口控件。VC++的控件工具栏并没有包含串口控件,一次首先要将它
加入工具栏中。选择“Project”->“Add To Project”->“Components and Controls”,
如图9-4 所示。
图9-4 添加控件
? 在文件打开对话框中选择“Microsoft Communications Control, version 6.0”,如图9-5
所示,单击“Close”按钮关闭对话框。
? 为VC++chā入控件后,控件工具栏上多出了一个图标,如图9-6 所示。
图9-5 chā入MSComm 控件 图9-6 chā入控件后的控件工具栏
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·244·
? 为对话框添加控件,界面设计如图9-7 所示,控件的属xìng如表9-7 所示。
? 为程序添加选择串口对话框资源,添加一个ComboBox 串口让用户选择使用,创建
CCommSettingDlg 类。
图9-7 对话框界面设计
表9-7 对话框控件列表
ID 属xìng或作用 控件类型
IDC_STATIC 接收数据 组合框
IDC_STATIC 发送数据 组合框
IDC_SENDDATA 发送的数据 编辑框控件
IDC