MFC 中 在下遇到个有关问题,特此请问,多谢
MFC 中 在下遇到个问题,特此请教,谢谢
描述: 我想创建个文本文件,对串口数据进行实时读取
1 我首先 创建文本如下:
创建文件成功了的!
2 读取串口数据
CCriticalSection cs; //临界区 我刚开始并未使用,加上以后还是不行!
错误:
想请教哈,有什么方法可以解决呢?
特此先谢谢各位:分数不多哈
------解决方案--------------------
断言异常,变量,指针未初始化,或句柄无效。需要你单步调试确定那一句出错。
------解决方案--------------------
char chgetxtx[] =""; //这里并没有有效的内存空间执行了strcpy,仅供参考
------解决方案--------------------
对的,楼主并没有指定缓冲区 chgetxtx 的大小,怎么能往里面拷贝数据呢?把这里改一下。
------解决方案--------------------
可以改成char chgetxtx[256]={0};
描述: 我想创建个文本文件,对串口数据进行实时读取
1 我首先 创建文本如下:
hFile=CreateFile(path,GENERIC_WRITE,FILE_SHARE_READ,NULL,
OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);//先创建一个空的文件
if (hFile == INVALID_HANDLE_VALUE)
{
hFile = NULL;
MessageBoxA(NULL, "Can not open the file", "Playwav", MB_OK);
}
创建文件成功了的!
2 读取串口数据
DWORD szBuffer[10024];
while(TRUE)
{
cs.Lock();
string iectxt =readata();
char chgetxtx[] ="";
strcpy(chgetxtx,iectxt.c_str());
WriteFile(hFile,chgetxtx, sizeof(iectxt) ,szBuffer,NULL);
Sleep(2000);
/*cs.Lock();
string str_str = readata();
str_new = str_old;
str_old = str_str.c_str();
string *a = new string(str_str);
vec_str.push_back(a);
cs.Unlock();
Sleep(1000);
WriteSY.SetEvent();
long dd= _ttoi(str_old);
cEdit->SetWindowTextW(str_old);*/
cs.Unlock();
Sleep(5000);
}
CCriticalSection cs; //临界区 我刚开始并未使用,加上以后还是不行!
错误:
CIecClientSimulator1.2.exe 中的 0x6383ad4a (msvcp100d.dll) 处最可能的异常: 0xC0000005: 读取位置 0x0000203c 时发生访问冲突
CIecClientSimulator1.2.exe 中的 0x6383ad4a (msvcp100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x0000203c 时发生访问冲突
程序“[5400] CIecClientSimulator1.2.exe: 本机”已退出,返回值为 -1073741819 (0xc0000005)。
想请教哈,有什么方法可以解决呢?
特此先谢谢各位:分数不多哈
------解决方案--------------------
断言异常,变量,指针未初始化,或句柄无效。需要你单步调试确定那一句出错。
------解决方案--------------------
char chgetxtx[] =""; //这里并没有有效的内存空间执行了strcpy,仅供参考
------解决方案--------------------
对的,楼主并没有指定缓冲区 chgetxtx 的大小,怎么能往里面拷贝数据呢?把这里改一下。
------解决方案--------------------
可以改成char chgetxtx[256]={0};