Delphi 專案預設包含 ProjectName.res (含應用程式圖示),專案檔以 {$R *.res} 指令連結。我們可自建 .res 內嵌任意檔案 (圖片、音訊、資料檔等),達成「單一執行檔部署」。
建立文字檔 MyMusic.rc:
SRC1 FILE1 OnlyYou.mp3
SRC2 FILE2 YesterdayOnceMore.mp3
SRC3 FILE3 MoonRiver.mp3
資源名稱 資源類型 檔案路徑FILE1、FILE2),以空白分隔命令列執行 (需在 Delphi Bin 目錄或設定 PATH):
brcc32.exe MyMusic.rc
產出 MyMusic.res,符合 Windows 標準資源格式,跨語言可用 (VB、VC、C++Builder)。
在需使用的單元加入指令:
{$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');
STRINGTABLE 資源類型管理多國語言文字。BeginUpdateResource),一般僅讀取。brcc32 (即 brcc64)。掌握 .rc → brcc32 → .res → {$R} → TResourceStream 完整工具鏈,能讓 Delphi 專案實現真正的「綠色單一檔部署」,提升分發便利性與資源完整性。