我知道怎么用writefile发字符串如下:         char *Temp = new char[200];
sprintf(Temp, "%s%s\n", (char*)string1,(char*)CheckResult);//连接要输出字符串
memset(m_szWriteBuffer, 0, sizeof(m_szWriteBuffer));
strcpy(m_szWriteBuffer, Temp);
         WriteFile(port->m_hComm, //端口句柄
          port->m_szWriteBuffer, //指向要发送的字符串
          strlen((char*)port->m_szWriteBuffer),//要发送的字符串的大小
          &BytesSent, //实际发送的字符串的大小
          &port->m_ovWrite); 现在我想发送字节数组
BYTE bTemp[3];
bTemp[0]=0x11;
bTemp[1]=0xEA;
bTemp[2]=0xEE;
应该怎么办,回答请具体:

解决方案 »

  1.   

    BYTE bTemp[3];
    WriteFile(port->m_hComm,            //端口句柄
                  bTemp,        //指向要发送的字符串
                  sizeof(bTemp),//要发送的字符串的大小
                  &BytesSent,            //实际发送的字符串的大小
                  &port->m_ovWrite); 
      

  2.   

    端口的名字一般都是COM_开头的,直接用CreateFile打开这个COM_然后用你的WriteFile就行了~串口驱动支持read、write、IoControl的
      

  3.   

    是这样的我的程序已经做好port->m_szWriteBuffer是char *类型,我想要的是能用port->m_szWriteBuffer来发送BYTE 数组,你这样的话我的程序要改很多东西
      

  4.   

    如果你要用WriteFile发送二进制数据,就不能用strlen((char*)port->m_szWriteBuffer)来计算发送数据长度了,因为你的二进制数据中可能会有\0,你可以在port这个结构中增加一个nBufferLen,用来保存数据长度。memcpy(port->m_szWriteBuffer,bTemp,sizeof(bTemp));
    WriteFile(port->m_hComm,            //端口句柄
                  port->m_szWriteBuffer,        //指向要发送的字符串
                  port->nBufferLen,//要发送的字符串的大小
                  &BytesSent,            //实际发送的字符串的大小
                  &port->m_ovWrite); 
      

  5.   


    a3l_120
    (a3l_120)等 级: #3楼 得分:0回复于:2012-10-24 14:28:39引用 1 楼 的回复:
    BYTE bTemp[3];
    WriteFile(port->m_hComm, //端口句柄
    bTemp, //指向要发送的字符串
    sizeof(bTemp),//要发送的字符串的大小
    &BytesSent, //实际发送的字符串的大小
    &port->m_ovWrite);是这样的我的程序已经做好port->m_szWriteBuffer是char *类型,我想要的是能用port->m_szWriteBuffer来发送BYTE 数组,你这样的话我的程序要改很多东西