Expression:(L"String is not null terminated" && 0)有关问题
Expression:(L"String is not null terminated" && 0)问题
将一个数组中所有数据发送到设备,每个数据一次只发送一个字节。
运行后出现如下错误:

请求各位大神帮助...
------解决方案--------------------
char *Send = (char*)malloc(m_iSize*sizeof(char)+1);
Send = p_szData.GetBuffer(m_iSize);
-----------------
代码没细看,就这里就错了吧,第二句你就改变了Send指针的值了,导致之前分配的内存丢了。
void RandomWave::SendBuf(CString p_szData)//发送数据函数
{
int m_iSize = p_szData.GetLength();
char *Send = (char*)malloc(m_iSize*sizeof(char)+1);
Send = p_szData.GetBuffer(m_iSize);
HANDLE hWriteFile;
char BulkWritePipe[20];
ULONG nBytes;
strcpy(BulkWritePipe,LPCSTR("Pipe01"));
hWriteFile=Open_Pipe(BulkWritePipe);//打开管道
if (hWriteFile==INVALID_HANDLE_VALUE)
{
AfxMessageBox("管道打开失败...");
}
else
{
for( int i = 0;i<m_iSize;i++)
{
char *Temp = Send[i];
WriteFile(hWriteFile,&Temp,1,&nBytes,NULL);
}
}
}
void RandomWave::OnBnClickedBtnSend()
{
for(int k = 0 ; k < p_BufSize;k++)
{
CString str;
str.Empty();
str.Format("%d",BuffWave[k]);
str += "*";//一个数发送结束符
SendBuf(str);
}
SendBuf("%");//一次发送结束符
}
将一个数组中所有数据发送到设备,每个数据一次只发送一个字节。
运行后出现如下错误:
请求各位大神帮助...
------解决方案--------------------
char *Send = (char*)malloc(m_iSize*sizeof(char)+1);
Send = p_szData.GetBuffer(m_iSize);
-----------------
代码没细看,就这里就错了吧,第二句你就改变了Send指针的值了,导致之前分配的内存丢了。