MFC 中 在下遇到个问题,特此请教,谢谢

简书成研 2014-04-19 11:54:12
描述: 我想创建个文本文件,对串口数据进行实时读取
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)。


想请教哈,有什么方法可以解决呢?
特此先谢谢各位:分数不多哈
...全文
143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
简书成研 2014-04-20
  • 打赏
  • 举报
回复
恩 谢谢各位啦,我改成写数据库啦,问题已经解决了哈
kuankuan_qiao 2014-04-20
  • 打赏
  • 举报
回复
sichuanwww 2014-04-20
  • 打赏
  • 举报
回复
路人乙2019 2014-04-20
  • 打赏
  • 举报
回复
引用 2 楼 u014551536 的回复:
char chgetxtx[] =""; //这里并没有有效的内存空间执行了strcpy,仅供参考
可以改成char chgetxtx[256]={0};
caewow 2014-04-19
  • 打赏
  • 举报
回复
引用 2 楼 u014551536 的回复:
char chgetxtx[] =""; //这里并没有有效的内存空间执行了strcpy,仅供参考
对的,楼主并没有指定缓冲区 chgetxtx 的大小,怎么能往里面拷贝数据呢?把这里改一下。
fxzn 2014-04-19
  • 打赏
  • 举报
回复
char chgetxtx[] =""; //这里并没有有效的内存空间执行了strcpy,仅供参考
路人乙2019 2014-04-19
  • 打赏
  • 举报
回复
断言异常,变量,指针未初始化,或句柄无效。需要你单步调试确定那一句出错。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧