📄 05o010.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title></title>
<link rel="stylesheet" type="text/css" href="../../vckbase.css">
</head>
<body>
<div align="justify">
<table border="0" width="100%" class="font" height="57">
<tr>
<td width="27%" height="6" class="bigfont" bgcolor="#B8CFE7" align="center" bordercolor="#800080">
<font color="#800080">VC知识库(五)</font>
</td>
<td width="73%" height="6" class="bigfont" bgcolor="#B8CFE7" align="center" bordercolor="#800080">
<font color="#800080">www.vckbase.com</font>
</td>
</tr>
<tr>
<td width="100%" height="4" class="header" valign="top" align="center" colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="100%" height="17" class="header" valign="top" align="center" colspan="2">
<FONT color=#0000c0>
在VC6.0中读取二进制文件</FONT>
</td>
</tr>
<tr>
<td width="100%" height="17" class="info" align="center" colspan="2">
大唐电信软件中心 <BR>周志杰
</td>
</tr>
<tr>
<td width="100%" height="22" class="font" colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="100%" height="5" class="font" colspan="2">
<CENTER><FONT color=#0000c0>
</FONT>
</CENTER>
<P><FONT color=#ffffff>----</FONT>
各位需要用VC++读写二进制文件的朋友(尤其是需要与DOS共享二进制文件的朋友),VC6.0的推出无疑给大家带来的一个惊喜.你还没发现吗?那让我来给您提个醒把:
<P><FONT color=#ffffff>----</FONT>
二进制文件的读写通常而且很实用的方法是使用结构(体)先构造文件中一条记录的结构,再逐条读/写.在VC5.0中,一直存在一个小小的弊病---如果你使用MFC则它要求结构(体)成员比特位对齐为8位,而且你无法方便的通过选中"Project->Setting->C/C++"选项卡中的"Code
Generation"再修改"Struct member alignment"来使其变为1位(即使改变了,在你编译时该改变也会被忽略).
<P><FONT color=#ffffff>----</FONT>
当然如果你的二进制文件是在WINDOWS下创建的,并且只在WINDOWS下读写,这种影响并不明显.但如果很不巧,你需要与DOS共同读写一个在DOS下创建的二进制文件时,它带来的麻烦会让你哭笑不得,尤其是你的结构中各个成员的数据类型不同时(就更别提为节省空间使用"位域"后的文件了),结构的长度不再是你所期望的值,原本的数据在读出时变的乱七八糟,而你写进去的记录,在DOS下读取时同样只能让你盯着屏幕发呆.
<P><FONT color=#ffffff>----</FONT>
为了能将结构成员的对齐位降至1位,你可能已经做了很多努力,比如将二进制文件的读写全部转移到一个基于API的DLL中,而只要求DLL返回执行结果,或者干脆使用VC5.0编写一个基于API的WINDOWS的程序,也许你已经成功了,但是付出的代价也是令同行钦佩的.
<P><FONT color=#ffffff>----</FONT>
现在好了,VC6.0的推出让苦日子成为过去了.在VC6.0中,结构成员的对齐位可以方便的降至1位!!读写二进制文件的灰暗时代终于过去了!!!
</P>
</td>
</tr>
<tr>
<td width="100%" height="12" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="6" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="8" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="17" class="font" colspan="2"></td>
</tr>
</table>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -