• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    在VB編程中有效地組織和利用資源

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 12次 | 進入軟件測試論壇討論

    領測軟件測試網 中國電子產品可靠性與環境試驗研究所 黃茂生

    ---- 一. 資源在軟件設計中的作用

    ---- 在Windows中,一個資源代表一個Windows對象的數據塊,每個可執行文件都包含一個資源表,其中列出了該文件中的資源。應用程序中使用的資源通?煞譃閮纱箢悾憾M制資源和字符串資源;字符串資源指在應用程序的用戶界面中出現的所有文本,其中包括菜單、對話框以及提示、警告和錯誤提示信息;二進制資源包括:圖標、位圖、光標文件、聲音、圖象及視頻等以二進制格式存放的資源。

    ---- 應用程序中引入資源文件的最初動機是為使應用程序更容易國際化;把應用程序分成兩個概念模塊:代碼模塊和數據模塊,如下所示:

    數據模塊+代碼模塊=產品
    用戶接口部件+應用程序部件=本地化產品

    ---- 數據模塊包含所有用戶界面的字符串資源而不包含代碼,相反,代碼模塊只包含可運行于所有區域的應用程序代碼。因而在開發不同語言版本的應用程序時,本地化小組只須把精力花在資源文件上,這樣做有以下優點:

    ---- 高效:由于代碼是相同的,因而在開發新的國際化應用程序只須創建新的資源文件,這樣可以順利地開發不同語言版本的應用程序;安全:無論在內部或利用外部公司本地化程序,都可以不用修改代碼,這樣做可以減少化在國際版測試上的精力;更好的本地化:由于所有的字符串資源都在一個文件中,因此可以提高本地化工作的效率并防止遺漏。

    ---- 要將應用程序使用的資源從應用程序中分離出來組成數據模塊,可以用資源編譯器將這些對象合并到一個資源文件里;利用資源文件組織資源,允許你很容易將大量的圖形位圖和圖標文件直接包含在你的項目中,在對他們進行訪問時單獨加載,能改進加載時間,避免資源在調用窗口時全部加載而加快程序代碼執行效率;除此外,還可以增加空間,這是因為字符串、位圖、圖標和數據可以不必在調用窗口或模塊時就全部加載,而是按照需要從資源文件中加載。

    ---- 二. 資源在資源定義文件的組織與定義

    ---- 字符串資源和二進制資源的定義語法分別如下:

    ---- 1. 字符串資源

    ---- 在資源定義文件里,字符串資源是包含在一個字符串表中的,定義語法格式:

    STRINGTABLE   [load_option] [mem_option]
    begin
    String ID  string
    .
    .
    .
    end

    ---- 參數說明

    ---- -----load_option 指出資源被裝栽的方式:preload(程序執行時立即裝載);load on call(資源在被調用時裝載,默認方式)。

    ---- -----mem_option 指定資源被載入內存后是否可以移動和卸載。有三個參數可選:Fixed (指定資源存放在一個固定的內存區域中),Moveable(資源在系統有必要壓縮內存時可以被移動),Discardable(資源在不再使用時被卸載);

    ---- -----StringID 指定一個整數作為識別資源的資源號;

    ---- -----String 字符串資源,它必須包含再兩個雙引號之內,而且長度不超過255個字節,一個字符串資源在資源定義文件里只能放在一行之中。

    ---- 資源編譯器編譯資源時,是按標簽號來分類的,每16個字符串為一段,標簽號高12位相同的將被劃分為同一段,在裝載資源文件時是以段來栽入和卸載的。

    ---- 資源定義例子:

    # define  IDS_HELLO         1
    #define   IDS_GOODBYE      2
    STRINGTABLE
    Begin
    IDS_HELLO , “Hello”
    IDS_GOODBYE, “goodbye”
    End

    ---- 2.二進制資源

    ---- 二進制資源是不包含在資源定義文件里的。資源定義文件只包含了一個指向包含該資源的文件的指針,這些指針在資源定義文件里被稱為單行聲明。

    ---- 定義語法: nameID keyword [load_option] [mem_option] filename

    ---- 參數說明:

    ---- ------nameID 指定一個名字或整數來標識該資源。這個標識號在同類的資源里是唯一的,而在圖標類資源中,標識號0是保留號,0號圖標資源是應用程序圖標。因而,圖標類資源的標識號只能從1開始;

    ---- -----keyword 二進制資源的類別,可以設為以下參數之一:Bitmap (位圖文件)、cursor(光標文件)、iocn(圖標文件)、sound(聲音文件)、video(視頻文件);

    ---- -----load_option 該參數功能與字符串資源對應定義參數相同

    ---- -----mem_option 該參數功能與字符串資源對應定義參數相同

    ---- -----fileName 包含資源的文件名,文件名格式采用 MS-DOS的文件名格式,而且必須是全路徑文件名,可以用雙引號括起來也可以不括起來。

    ---- 例: 12 Bitmap Picture “c:\disk.map”

    ---- 3. 資源文件的編譯

    ---- 用資源文件編譯器把資源定義文件編譯成標準的Windows資源文件后,該資源文件就可以加載到應用項目中被應用程序調用,編譯后的文件是標準的資源文件,可由 Microsoft c++和其它大部分的Windows 開發工具使用。編譯資源定義文件可以用資源編譯器 RC.EXE。

    ---- 格式:RC/R [option] definition_file source_file

    ---- ---/R 該參數指定資源文件僅被編譯而不連接到可執行文件

    ---- ---option 此參數為/?則列出資源編譯器RC.EXE 的命令行參數;為/fo Name 則指定編譯后擴展名為 .RES 的資源文件名;

    ---- ---definition file 指定被編譯的資源定義文件

    ---- 例: RC /R /fo test.res test.rc

    ---- 三. 資源在VB5下的調用

    ---- 編譯后的資源文件是標準的Windows 資源文件,可以為大多數的Windows 開發工具使用。在Visual Basic 5.0 下先向工程添加資源文件,然后用Loadresstring(),Loadrespicture(),Loadresdata()函數調用,

    函數名 描述
    Loadrestring()
    從資源文件(.res)裝載字符串并返回一個文本字符串;
    Loadrespicture()
    從資源文件(.res)裝載并返回一個Picture
    對象,例如圖標、位圖、或光標;
    Loadresdata()
    從資源文件(.res)裝載并返回一個Byte
    數組,用于象 .wav 之類的文件;

    ---- 調用語法:

    ---- Loadrestring(index),index是必須的一個參數,它用來指定資源文件中數據的標識號(ID),ID標識號為1的資源號保留給應用程序圖標;

    ---- Loadrespicture(index,format),index含義與上同,Format是必須的一個數值常數,它用來指定返回數據的格式。其設置如下:

    常數  設置 描述
    VbResBitmap 0 位圖資源
    VbResIcon 1 圖標資源
    VbResCursor 2 光標資源

    ---- Loadresdata(index,format),其參數index含義和Loadrespicture()相同,其中用于Format的設置有:

    設置 描述 設置 描述
    1 光標資源 7 字體目錄資源
    2 位圖資源 8 字體資源
    3 圖標資源 9 加速標資源
    4 菜單資源 10 用戶定義資源
    5 對話框 12 群組光標
    6 字符串資源 14 群組圖標

    ---- 例:調用前面已定義的字符串資源和位圖資源,把按鈕bottom1的caption屬性設為“Hello”,Form1的Picture屬性設為disk.bmp

    botton1.caption= Loadrestring(1)
    Form1.picture= Loadrespicture(12,0)

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>