字体
第(1/5)页
关灯
   存书签 书架管理 返回目录
    ARAM;

    // 打开互斥量

    hMutex = ::OpenMutex(MUTEX_ALL_ACCESS, FALSE, g_strNcom);

    if( hMutex == NULL )

    {

    AfxMessageBox("open Mutex error...");

    return 1;

    }

    // 失败

    if ( WaitForSingleObject(hMutex, INFINITE) == WAIT_FAILED )

    {

    return 1;

    }

    CByteArray m_Array;

    // 读出发送数据

    int Count=lpData->length;

    m_Array.RemoveAll();

    m_Array.SetSize(Count);

    for(int i=0;i
    {

    m_Array.SetAt(i,lpData->data[i]);

    }

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·246·

    // 使用串口发送数据

    lpData->pComm->SetOutput(COleVariant(m_Array));

    // 释放互斥量

    ReleaseMutex(hMutex);

    return 0;

    }

    (3)初始化互斥量

    为对话框添加初始化互斥量的成员函数InitMutex,代码如下:

    bool CSCommDlg::InitMutex()

    {

    g_hMutex = CreateMutex(NULL, false, g_strNcom);

    if( g_hMutex == NULL )

    {

    AfxMessageBox("创建互斥对象错误");

    return false;

    }

    return true;

    }

    (4)初始化串口

    为对话框添加初始化串口的成员函数InitComm,代码如下:

    bool CSCommDlg::InitComm()

    {

    CCommSettingDlg dlg;

    if( dlg.DoModal() == IDOK )

    {

    m_nIndex = atoi(LPCTSTR(dlg.m_nCommID) );

    }

    //通信参数设置

    // 设置串口号

    m_Comm.SetCommPort(m_nIndex);

    // 设置数据获取方式

    m_Comm.SetInputMode(1);

    枫叶文学网www.fywxw.com

    第9 章 多线程

    ·247·

    // 设置传输参数

    m_Comm.SetSettings("9600,n,8,
上一章 目录 下一页