找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4533|回复: 1

串口 ACE_Asynch_Write_Stream::write()总是返回 -1 ?!

[复制链接]
发表于 2011-4-11 20:10:46 | 显示全部楼层 |阅读模式
本帖最后由 tengmo535 于 2011-4-11 20:17 编辑

void CMyServer::open (ACE_HANDLE handle,ACE_Message_Block &message_block)
{
        if (this->rs_.open (*this, handle) == -1)//||this->wr_.open(*this,handle)==-1)
        {
                return;
        }
        if (this->wr_.open(*this,handle)==-1)
        {
                return;
        }

        BYTE sendBuf[11]={'D','H',11,0x41,0x00,0x00,0,0,0,0,200};
        ACE_Message_Block* mb = new ACE_Message_Block((char*)sendBuf,sendBuf[2]);
        mb->wr_ptr(sendBuf[2]);        
        if(wr_.write(*mb,mb->length())==-1)     //此处总是返回 -1,大概什么原因?(写向串口,从串口读很正常)
        {
                mb->release();
        }

                 ……

}
 楼主| 发表于 2011-4-12 14:36:09 | 显示全部楼层
这个我自己找到答案了。ACE的底层write用的是WSASend,向串口写需改成WriteFile.
目前write的问题解决了,但程序又不响应read的handle_event()了
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-17 11:55 , Processed in 0.012702 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表