程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 在VC6.0中讀取二進制文件

在VC6.0中讀取二進制文件

編輯:vc教程

  各位需要用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位!!讀寫二進制文件的灰暗時代終於過去了!!!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved