| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 424 人关注过本帖
标题:为什么读出来的数据完全不对劲?
只看楼主 加入收藏
tk1223108078
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2013-7-18
结帖率:77.78%
收藏
已结贴  问题点数:10 回复次数:2 
为什么读出来的数据完全不对劲?
unsigned char buf[512]={0};
    HANDLE hFile = CreateFile("\\\\.\\PhysicalDrive0",//\\\\.\\PhysicalDrive0..D://123.txt
                       GENERIC_READ|GENERIC_WRITE,
                       FILE_SHARE_READ,
                       NULL,
                       OPEN_EXISTING,
                       0,
                       NULL);
    DWORD RSize=0;
    ReadFile(hFile, buf, 512, &RSize, NULL);
    //可将buf显示在某区域或写入另一个文件来检查读出是否正确
    CloseHandle(hFile);
    ReadMBR(buf,0,511);
    free(buf);
代码如上所示,哪里有不对劲的?,读取的数据不应该是硬盘上的第一个扇区吗?
2013-10-15 15:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
代码如上所示,哪里有不对劲的?,读取的数据不应该是硬盘上的第一个扇区吗?
------- 哪里有不对劲的,你应该告诉大家。否则你自己脑子里想的东西,别人怎么可能猜到出?
另外,
unsigned char buf[512]={0};
free(buf);
也太……。(我不认为这是基础差造成的,也不认为是粗心大意造成的,我认为嗜好malloc/free是种病态行为)
2013-10-15 16:27
tk1223108078
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2013-7-18
收藏
得分:0 
回复 2楼 rjsp
额多谢建议,表示这个说实话对这个格式什么的不是太懂,都是照葫芦画瓢的,不过去掉free()之后可以读自己想要的数据了,还是谢谢你
2013-10-15 19:39
快速回复:为什么读出来的数据完全不对劲?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017906 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved