通过以下方式创建了一个文件:
HANDLE m_hAudioFile = CreateFile(".\\AudTest.dat",
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_WRITE | FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH,
NULL);然后通过WriteFile把数据写到AudTest.dat中,我看了数据确实是写进去了,
但是我为什么通过以下的方式没能把数据读出来呢?
BYTE m_AudioData[8000 * 2 * 50];
HANDLE m_hAudioFiletest = CreateFile(".\\AudRecord.dat",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_READONLY,
NULL);
ReadFile(m_hAudioFiletest, (void*)m_AudioData, 8000 * 2 * 50, NULL, NULL);
HANDLE m_hAudioFile = CreateFile(".\\AudTest.dat",
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_WRITE | FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH,
NULL);然后通过WriteFile把数据写到AudTest.dat中,我看了数据确实是写进去了,
但是我为什么通过以下的方式没能把数据读出来呢?
BYTE m_AudioData[8000 * 2 * 50];
HANDLE m_hAudioFiletest = CreateFile(".\\AudRecord.dat",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_READONLY,
NULL);
ReadFile(m_hAudioFiletest, (void*)m_AudioData, 8000 * 2 * 50, NULL, NULL);
解决方案 »
- 定期删除数据库数据?
- 急急急!WTL 获取WM_POWERBROADCAST,如何获取? 要求模式对话框下!
- 新手请教:如何让CEdit始终显示最后一行?
- 怎样把网页中的一幅图片放到当前DC中
- 如何取得隐藏窗口画面并保存为一张位图
- 请问:CMonthCalCtrl(日/月历控件)怎么取到当前选定的日期?
- 怎样使用TabCtrl控件
- 大家能不能谈谈 ,常去的网站 ,常看的书?
- 各位高手,请问有谁能帮我调试一下我的一个关于“Tab sheet View”的一个工程!高分酬谢!
- ADO 和 DAO COM 到底有些什么区别?
- MDI程序中有多个子窗口,如果判断某点POINT在哪个窗口内?
- 单击按钮"浏览"便可以在列表框显示数据表所有信息,请指教!
HANDLE m_hAudioFiletest0 = CreateFile(".\\AudTest.dat",
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_WRITE | FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH,
NULL);
DWORD dwLentest0 = 10;
WriteFile(m_hAudioFiletest0, (void*)m_AudioDatatest0, 10, &dwLentest0, NULL);
BYTE m_AudioDatatest1[10];
DWORD dwLentest1 = 10;
HANDLE m_hAudioFiletest1 = CreateFile(".\\AudTest.dat",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_READONLY,
NULL);
ReadFile(m_hAudioFiletest1, (void*)m_AudioDatatest1, 10, &dwLentest1, NULL);
for(int i=0; i<10; i++)
{
if(m_AudioDatatest0[i] != m_AudioDatatest1[i])
AfxMessageBox("File Read Error!");
}大家看看这样读会有什么问题吗?
为什么最后比较就是不对呢?
可以这样做:
1、SetFilePointer()将文件指针移到文件头,然后ReadFile();
或者
2、CloseHandle(),再CreateFile()重新打开,再ReadFile().