用vc6.0编写一个程序将一个WAV文件分块(块的大小是128个字节)通过串口发送到一个前端设备里的FLASH ROM里。FLASH ROM按每块128个字节进行划分。
另外一个程序正好和这个程序相反。
希望各位大虾能告诉我。要原代码。谢谢

解决方案 »

  1.   

    不会写API用MSCOMM控件好了,以二进制流的方式读出WAV,然后发送到前端
    http://www.csdn.net/develop/Read_Article.asp?Id=11045
      

  2.   

    我也想用控件。但是,总工程师不同意。要我必须用API。其实,我读是没问题了。
    可是要把它存下来就出问题了。找了很多地方都找不到相关文章
      

  3.   

    试过了,不行。
    我用的是fread和fwrite进行文件的读和写的设的是二进制的读和写操作。缓冲区是char类型的。不过,这样,存的时候就出问题了,存的内容不对。
      

  4.   

    是用readComm和writeComm进行读写串口操作,异步操作函数如下:
    // 从串行口输入缓冲区中读入指定数量的字符
    DWORD CTerminalDoc::ReadComm(char *buf,DWORD dwLength)
    {

    DWORD length=0;

    COMSTAT ComStat;

    DWORD dwErrorFlags;

    ClearCommError(m_hCom,&dwErrorFlags,&ComStat);

    length=min(dwLength, ComStat.cbInQue);

    ReadFile(m_hCom,buf,length,&length,&m_osRead);

    return length;
    }// 将指定数量的字符从串行口输出DWORD CTerminalDoc::WriteComm(char *buf,DWORD dwLength){

    BOOL fState;

    DWORD length=dwLength;

    COMSTAT ComStat;

    DWORD dwErrorFlags;

    ClearCommError(m_hCom,&dwErrorFlags,&ComStat);

    fState=WriteFile(m_hCom,buf,length,&length,&m_osWrite);

    if(!fState){

    if(GetLastError()==ERROR_IO_PENDING)

    {

    GetOverlappedResult(m_hCom,&m_osWrite,&length,TRUE);// 等待

    }

    else

    length=0;

    }

    return length;
    }