【发布时间】:2013-07-01 15:16:49
【问题描述】:
我已经声明了
char body[1000] ;
HANDLE myFile;
我已经在前面的部分中创建了一个文件并编写了标题。写的很好。
它有以下没有循环的命令。
HANDLE myFile=CreateFile("filename.txt",GENERIC_ALL,FILE_SHARE_WRITE,0,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0);
char* HeadingStr="a1 a2 a3 a4 a5 a6 a7 a8 \n";
WriteFile(myFile,HeadingStr,lstrlen(HeadingStr),0,NULL);
CloseHandle(myFile);
然后我有以下代码
loop{ (100 times)
myFile=CreateFile("filename.txt",FILE_APPEND_DATA,FILE_SHARE_WRITE,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
BufferNo=sprintf(body,"%f %f %f %f %f %f %f %f \n",a1,a2,a3,a4,a5,a6,a7,a8);
WriteFile(myFile,body,BufferNo,0,NULL);
CloseHandle(myFile);
}
循环实际上是我从设备接收到的消息。所以,这不必对此做任何事情。
运行代码后,错误Access Violation Error并指向
WriteFile(myFile,body,BufferNo,0,NULL);
如果我检查文件,我会得到
a1 a2 a3 a4 a5 a6 a7 a8 (rectangle: may be way of text editor saying line break) and then 2 4 23 21 12 431 23 32 (same rectangle)
这就是全部。该错误指出这不是由于来自设备的消息。 如果您需要更多详细信息,请告诉我。 错误在哪里?
附:在此之前我问了一个问题。在此错误发生之前包含错误,并且还包含该问题的解决方案。我在那里问过,但由于不活跃,我又问了一次。但问题是不同的。
【问题讨论】:
-
请发布您的所有代码 [至少足以成为可以编译的完整部分],因为到目前为止您发布的实际行实际上并没有显示任何错误。跨度>
-
这个问题过于本地化,不太可能帮助未来的访问者。
标签: c++ visual-studio-2010 winapi