Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16496892
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:52:27

下载本文示例代码
  各位需要用VC 读写二进制文件的朋友(尤其是需要与DOS共享二进制文件的朋友),VC6.0的推出无疑给大家带来的一个惊喜.你还没发现吗?那让我来给您提个醒把:   二进制文件的读写通常而且很实用的方法是使用结构(体)先构造文件中一条记录的结构,再逐条读/写.在VC5.0中,一直存在一个小小的弊病---如果你使用MFC则它要求结构(体)成员比特位对齐为8位,而且你无法方便的通过选中"Project-$#@62;Setting-$#@62;C/C "选项卡中的"Code Generation"再修改"Struct member alignment"来使其变为1位(即使改变了,在你编译时该改变也会被忽略).   当然如果你的二进制文件是在WINDOWS下创建的,并且只在WINDOWS下读写,这种影响并不明显.但如果很不巧,你需要与DOS共同读写一个在DOS下创建的二进制文件时,它带来的麻烦会让你哭笑不得,尤其是你的结构中各个成员的数据类型不同时(就更别提为节省空间使用"位域"后的文件了),结构的长度不再是你所期望的值,原本的数据在读出时变的乱七八糟,而你写进去的记录,在DOS下读取时同样只能让你盯着屏幕发呆.   为了能将结构成员的对齐位降至1位,你可能已经做了很多努力,比如将二进制文件的读写全部转移到一个基于API的DLL中,而只要求DLL返回执行结果,或者干脆使用VC5.0编写一个基于API的WINDOWS的程序,也许你已经成功了,但是付出的代价也是令同行钦佩的.   现在好了,VC6.0的推出让苦日子成为过去了.在VC6.0中,结构成员的对齐位可以方便的降至1位!!读写二进制文件的灰暗时代终于过去了!!!   各位需要用VC 读写二进制文件的朋友(尤其是需要与DOS共享二进制文件的朋友),VC6.0的推出无疑给大家带来的一个惊喜.你还没发现吗?那让我来给您提个醒把:   二进制文件的读写通常而且很实用的方法是使用结构(体)先构造文件中一条记录的结构,再逐条读/写.在VC5.0中,一直存在一个小小的弊病---如果你使用MFC则它要求结构(体)成员比特位对齐为8位,而且你无法方便的通过选中"Project-$#@62;Setting-$#@62;C/C "选项卡中的"Code Generation"再修改"Struct member alignment"来使其变为1位(即使改变了,在你编译时该改变也会被忽略).   当然如果你的二进制文件是在WINDOWS下创建的,并且只在WINDOWS下读写,这种影响并不明显.但如果很不巧,你需要与DOS共同读写一个在DOS下创建的二进制文件时,它带来的麻烦会让你哭笑不得,尤其是你的结构中各个成员的数据类型不同时(就更别提为节省空间使用"位域"后的文件了),结构的长度不再是你所期望的值,原本的数据在读出时变的乱七八糟,而你写进去的记录,在DOS下读取时同样只能让你盯着屏幕发呆.   为了能将结构成员的对齐位降至1位,你可能已经做了很多努力,比如将二进制文件的读写全部转移到一个基于API的DLL中,而只要求DLL返回执行结果,或者干脆使用VC5.0编写一个基于API的WINDOWS的程序,也许你已经成功了,但是付出的代价也是令同行钦佩的.   现在好了,VC6.0的推出让苦日子成为过去了.在VC6.0中,结构成员的对齐位可以方便的降至1位!!读写二进制文件的灰暗时代终于过去了!!! 下载本文示例代码


在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件在VC6.0中读取二进制文件
阅读(95) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~