線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:5536
推到 Plurk!
推到 Facebook!

我如何在bcb中使用資源檔(詳細內文)

尚未結案
bcb902146
一般會員


發表:67
回覆:33
積分:22
註冊:2002-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-09 20:56:49 IP:61.70.xxx.xxx 未訂閱
是這樣的啦 我平常都用api讀取外部音樂檔 現在我想把音樂檔加到˙資源檔裡 我要怎麼弄呢 (就是沒有外部音樂檔,就像音樂檔包在執行檔中了) 不知道我講的詳細不詳細 劉維翔
------
劉維翔
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-10 08:48:17 IP:203.73.xxx.xxx 未訂閱
引言: 是這樣的啦 我平常都用api讀取外部音樂檔 現在我想把音樂檔加到˙資源檔裡 我要怎麼弄呢 (就是沒有外部音樂檔,就像音樂檔包在執行檔中了) 不知道我講的詳細不詳細 劉維翔
(1)用 vc 產生一個 dll (2)在 dll 中產生一個 *.rc (3)在 rc 中產生一個自訂的型態(例如「data」) (4)把你要的音樂檔 import 到 dll 裡面 (5)由程式碼中讀取你要的音樂資料
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
hcw
一般會員


發表:5
回覆:11
積分:3
註冊:2002-09-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-21 16:14:33 IP:210.64.xxx.xxx 未訂閱
引言:
一、 首先編輯一資源文字檔,格式如下︰ 程式中所使用的名稱 格式 路徑 A1 WAV wav1.Wav B1 CURSOR cursor1.cur C1 ICON icone1.ico D1 BITMAP title.bmp E1 EXEFILE pkunzip.exe 再儲存成 .rc檔(如resouce.rc) 二、 再BCB中利用精靈產生一個DLL,再加入以下之程式碼︰ USERC("resource.rc"); extern "C" __declspec(dllexport) void* __stdcall Init_Resource(); void* __stdcall Init_Resource() { return HInstance; } 選擇Project | Build All Projects 將會產生 xxx.DLL 和xxx.Lib 二個檔。 三、 加入主程式方式如下︰ Project | project add->加入xxx.lib 並copy xxx.dll到程式相同的目錄下 宣告︰ extern "C" __declspec(dllimport) void* __stdcall Init_Resource(); //取得DLL資源檔中的HInstance HInstance=Init_Resource(); Image1->Picture->Icon->Handle=::LoadIcon(HInstance,"C1") ; Image1->Picture->Bitmap->Handle=::LoadBitmap(HInstance,"D1"); Screen->Cursors[100]=::LoadCursor(HInstance,"B1");
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-21 18:24:04 IP:61.231.xxx.xxx 未訂閱
如果要放在同一個專案中,不需另外加 DLL,可以參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=22021    外加的 DLL 是讓你的程式可以給別人改時才需要作的,如果 Release 時,不需要給別人改,則可以放在主專案中即可。    想請問 hcw ,不知道您 rc 中的 A1 WAV wav1.Wav E1 EXEFILE pkunzip.exe 要如何讀出呢?    沒空更新的網頁...
C及指標教學,計算機概論,資訊管理導論... http://coolsite.to/dllee 介紹Shells,LiteStep,GeoShell.... http://coolsite.to/ushells
------
http://www.ViewMove.com
hcw
一般會員


發表:5
回覆:11
積分:3
註冊:2002-09-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-22 10:55:30 IP:210.64.xxx.xxx 未訂閱
dllee 你好︰    讀取wav及exe方式如下︰    //wav檔載入方式  char *wav_handle ;      HRSRC h = FindResource(HInstance,"A1","WAV");   HGLOBAL h1 = LoadResource(HInstance, h);   wav_handle = (char *)LockResource(h1);     sndPlaySound(wav_handle, SND_MEMORY |SND_SYNC);    //執行檔載入方式(在此以解壓縮為例)    ShellExecute(HInstance,"open"," E1 ","d:\\a.zip  d:\\ ", "\tmppath", SW_HIDE ) ; Application->MessageBox("解壓縮完成", "OK", IDOK ) ;
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-02 15:44:11 IP:203.204.xxx.xxx 未訂閱
引言: dllee 你好︰ 讀取wav及exe方式如下︰ //wav檔載入方式 char *wav_handle ; HRSRC h = FindResource(HInstance,"A1","WAV"); HGLOBAL h1 = LoadResource(HInstance, h); wav_handle = (char *)LockResource(h1); sndPlaySound(wav_handle, SND_MEMORY |SND_SYNC); //執行檔載入方式(在此以解壓縮為例) ShellExecute(HInstance,"open"," E1 ","d:\\a.zip d:\\ ", "\tmppath", SW_HIDE ) ; Application->MessageBox("解壓縮完成", "OK", IDOK ) ;
謝謝! 是否在 RC 檔中,只有 CURSOR,ICON,BITMAP 是標準的 KeyWord ,其他的 WAV, EXEFILE 都是可以按自己的喜好來取名呢? 沒空更新的網頁...
C及指標教學,計算機概論,資訊管理導論... http://coolsite.to/dllee 介紹Shells,LiteStep,GeoShell.... http://coolsite.to/ushells
------
http://www.ViewMove.com
hcw
一般會員


發表:5
回覆:11
積分:3
註冊:2002-09-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-11-05 11:04:51 IP:210.64.xxx.xxx 未訂閱
 以下為.RC檔:
A1   WAV       wav1.Wav
B1   CURSOR    cursor1.cur
C1   ICON      icone1.ico
D1   BITMAP    title.bmp
E1   EXEFILE   pkunzip.exe
↓       ↓           ↓
可   keyWord     檔案路徑
照
自
已
喜
愛
取
名 
bosswang919
一般會員


發表:5
回覆:4
積分:1
註冊:2004-09-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-27 12:09:19 IP:202.39.xxx.xxx 未訂閱
引言: 一、 首先編輯一資源文字檔,格式如下︰ 程式中所使用的名稱 格式 路徑 A1 WAV wav1.Wav B1 CURSOR cursor1.cur C1 ICON icone1.ico D1 BITMAP title.bmp E1 EXEFILE pkunzip.exe 再儲存成 .rc檔(如resouce.rc) 二、 再BCB中利用精靈產生一個DLL,再加入以下之程式碼︰ USERC("resource.rc"); extern "C" __declspec(dllexport) void* __stdcall Init_Resource(); void* __stdcall Init_Resource() { return HInstance; } 選擇Project | Build All Projects 將會產生 xxx.DLL 和xxx.Lib 二個檔。 三、 加入主程式方式如下︰ Project | project add->加入xxx.lib 並copy xxx.dll到程式相同的目錄下 宣告︰ extern "C" __declspec(dllimport) void* __stdcall Init_Resource(); //取得DLL資源檔中的HInstance HInstance=Init_Resource(); Image1->Picture->Icon->Handle=::LoadIcon(HInstance,"C1") ; Image1->Picture->Bitmap->Handle=::LoadBitmap(HInstance,"D1"); Screen->Cursors[100]=::LoadCursor(HInstance,"B1");
大家好,小弟有點問題請教 在一、中提到的路徑中,在包完之後,這個路徑還要有檔案存在嗎,還是只要包完後的 dll lib 即可 如果是 BITMAP 的話,那圖檔只能是256色嗎,可以更高嗎 小弟包完 dll lib 之後 這兩個檔好像檔案大小不大,看起來好像圖檔沒包進去,不知是哪裡沒注意 還有就是如果正常成功的話,是不是只要更換 dll 裡的圖檔編號,然後置換 dll,就可以達成換掉程式裡所有的圖 感謝賜教~~
系統時間:2024-11-23 21:33:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!