MFC 写AT指令有关问题

MFC 写AT指令问题
所要实现的功能: 向手机号为13734608118中发送两条命令 一条是字符0000 一条是一个号码为01234567890 的手机号 并且设置短消息到达自动提示
出现的问题: 在ReadComm的时候机器就死了,我的写的代码有好多的地方是不完善的能否指点一下。
代码:
void CDlgInfo1::OnButton() 
{
// TODO: Add your control notification handler code here

BOOL ComB;  
//打开串口
ComB=OpenSendComm();

if (!ComB)
{
return;
}
//初始MODERN并发送信息
if (!gsmInit())
{
return ;
}

CloseHandle(portID);

}
BOOL CDlgInfo1::OpenSendComm()
{
char sIni[2000];
ComVcFunction::GetCurDir(sIni);
strcat(sIni,"\\setup.ini");
int SENDCOM=GetPrivateProfileInt("SYS","SENDCOM",2,sIni);
SENDCOM=(SENDCOM==0)?2:SENDCOM;
wsprintf( ComName, "COM%d", SENDCOM );
portID = CreateFile( ComName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL , NULL );

if(portID == INVALID_HANDLE_VALUE)
{
return FALSE;
}
return TRUE;

}
BOOL CDlgInfo1::gsmInit()
{
char ans[128]; // 应答串

// 测试GSM-MODEM的存在性
WriteComm("AT\r", 3);
ReadComm(ans, 128);
if (strstr(ans, "OK") == NULL) return FALSE;

// 关闭回显
WriteComm("ATE0\r", 5);
ReadComm(ans, 128);

// TXT模式
WriteComm("AT+CMGF=1\r", 10);
ReadComm(ans, 128);

// 设置对方号码
WriteComm("AT+CMGS=<13734608118>\r", 20);

//要发送的内容
WriteComm("AT+IDNT=0000\r", 13);
WriteComm("AT+PHON=11111111111\r", 20);

//设置短消息到达自动提示
WriteComm("AT+CNMI=1,1,0,0,1()\r", 13);


return TRUE;
}

int CDlgInfoXiangbian::WriteComm(void* pData, int nLength)
{
DWORD dwNumWrite; // 串口发出的数据长度

WriteFile(portID, pData, (DWORD)nLength, &dwNumWrite, NULL);

return (int)dwNumWrite;
}
// 读串口
// 输入: pData - 待读的数据缓冲区指针
// nLength - 待读的最大数据长度
// 返回: 实际读出的数据长度
int CDlgInfoXiangbian::ReadComm(void* pData, int nLength)
{
DWORD dwNumRead; // 串口收到的数据长度

ReadFile(portID, pData, (DWORD)nLength, &dwNumRead, NULL);

return (int)dwNumRead;
}




------解决方案--------------------
SetCommTimeouts() //设置串口超时