首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi RES 資源檔完整應用指南:建立、編譯連結與執行期提取還原

     編輯:Delphi

資源檔基礎

Delphi 專案預設包含 ProjectName.res (含應用程式圖示),專案檔以 {$R *.res} 指令連結。我們可自建 .res 內嵌任意檔案 (圖片、音訊、資料檔等),達成「單一執行檔部署」。

三步驟完整流程

步驟 1:編寫 .rc 腳本

建立文字檔 MyMusic.rc:


SRC1 FILE1 OnlyYou.mp3
SRC2 FILE2 YesterdayOnceMore.mp3
SRC3 FILE3 MoonRiver.mp3
  • 格式:資源名稱 資源類型 檔案路徑
  • 資源類型自訂 (如 FILE1、FILE2),以空白分隔

步驟 2:編譯 .rc 為 .res

命令列執行 (需在 Delphi Bin 目錄或設定 PATH):


brcc32.exe MyMusic.rc

產出 MyMusic.res,符合 Windows 標準資源格式,跨語言可用 (VB、VC、C++Builder)。

步驟 3:專案連結 .res

在需使用的單元加入指令:


{$R MyMusic.res}

建議置於 {$R *.dfm} 附近,維持結構清晰。

執行期提取還原


procedure MusicResToFile(const ResName, ResType, FileName: string);
var
  Res: TResourceStream;
begin
  Res := TResourceStream.Create(HInstance, ResName, PChar(ResType));
  try
    Res.SaveToFile(FileName); // 還原為實體檔案
    // 或直接對 Res 進行串流操作 (播放音訊、解析資料等)
  finally
    Res.Free;
  end;
end;

// 呼叫範例
MusicResToFile('SRC2', 'FILE2', 'TheSecondMusic.MP3');

進階應用場景

  • 單一檔安裝程式:內嵌所有安裝檔案,執行時釋放至暫存目錄安裝。
  • 防止外部資源遺失:背景音樂、音效、預設設定檔、報表樣板等內嵌於 EXE。
  • 版本資源自訂:透過 .rc 定義 VERSIONINFO,自訂檔案屬性頁資訊。
  • 多語系字串表:使用 STRINGTABLE 資源類型管理多國語言文字。

注意事項

  • 資源名稱/類型區分大小寫 (視編譯器行為),建議統一大寫。
  • 大型資源會增加 EXE 體積,影響載入速度,權衡使用。
  • 執行期修改資源需特殊 API (BeginUpdateResource),一般僅讀取。
  • 64 位元編譯需使用 64 位元 brcc32 (即 brcc64)。

總結

掌握 .rc → brcc32 → .res → {$R} → TResourceStream 完整工具鏈,能讓 Delphi 專案實現真正的「綠色單一檔部署」,提升分發便利性與資源完整性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved