VC串口通讯异常:当端口打开时操作无效

VC串口通讯错误:当端口打开时操作无效
我是用MSComm控件来收发数据的
	
if(m_Comm.GetPortOpen()) 
m_Comm.SetPortOpen(FALSE); 
/************************************************************************/
/* 这个地方有个bug;“当端口打开时操作无效”                                                                     */
/************************************************************************/
m_Comm.SetCommPort(5); //选择com1 
if( !m_Comm.GetPortOpen()) 
m_Comm.SetPortOpen(TRUE);//打开串口 
else 
AfxMessageBox("cannot open serial port"); 

m_Comm.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个停止位 
m_Comm.SetOutBufferSize(512);
m_Comm.SetInBufferSize(1024);

m_Comm.SetInputMode(1); //1:表示以二进制方式检取数据 
m_Comm.SetRThreshold(1); 

看过好多源代码都是这样打开串口的,为什么就我的会报错?
m_Comm.SetCommPort(5); 换过串口号还是报这个错
搜了好多资料都没解决这个问题
------解决思路----------------------
if(m_Comm.GetPortOpen())          m_Comm.SetPortOpen(FALSE);  /************************************************************************//* 这个地方有个bug;“当端口打开时操作无效”
把这两条语句去掉,并没给控件赋值哪个串口,当然出错了。应该是下面的判断

------解决思路----------------------
具体报的是什么错?
你在设备管理器里是否已经确认过有COM5这个设备?
------解决思路----------------------
要么串口号指定错误, 要么就是串口号已经被占用,就是你在某个地方打开了, 却没有关闭. 串口是独占的.