0x76b1dd74处的未处理异常。访问冲突写入位置0x00000000

时间:2013-02-07 14:49:47

标签: c++ exception com mfc dialog

我试图通过串口连接读取信息。我正在尝试使用HyperTerminal向我的程序发送一个字符或字符串。代码构建正常并将调试,直到它到达我正在使用的ReadFile函数。一旦启动该功能,它将等待发送信息。一旦我输入4个字符,我就会收到标题中所述的未处理的异常。断点使我无法评估afxWinMain和hPrevInstance CXX0030表达式。我可以使用我的程序将数据发送到超级终端,但无论出于何种原因,它都会与readfile崩溃。

调用函数的位置

void CThermotronDlg::OnBnClickedDelete()
{
Serial Port;
CString Temp("34");
bool ans;
int nItem = MyListEx.GetSelectionMark();



ans = Port.ReadPort(Temp);

}

功能

bool Serial::ReadPort(CString buf){

OpenPort();
LPCTSTR dope;


LPDWORD bytesRead =0;
char b[4];
BOOL ret = ReadFile(sSerial,b,4,bytesRead,NULL) ;


dope = reinterpret_cast<LPCTSTR>(b);
AfxMessageBox(dope,0,0);
return true;


}

1 个答案:

答案 0 :(得分:6)

DWORD bytesRead;
char b[4];
BOOL ret = ReadFile(sSerial,b,4,&bytesRead,NULL) ;

第4个参数必须是有效指针,它接收读取的实际字节数。它不能为NULL。更确切地说:仅当lpOverlapped参数不为NULL时,此参数才可以为NULL。

相关问题