串口数据粘包如何处理?

需求:
1.串口接收多种类型的数据,固定包头+长度。
2.按照接收的数据类型进行相应处理

问题:
1.串口接收的数据不完整,多个包粘在一起发送过来。
2.完整的数据包解析出来之后,最后一个包只有一部分数据,如何和下次接收的数据进行重组,避免丢包的情况发生?

环境:
VC++6.0
串口收发使用 PComm库

请参考:
http://blog.csdn.net/hwb_1988/article/details/45872379
http://www.360doc.com/content/13/0716/11/11681374_300323124.shtml