日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C++ > 正文

C++ Builder中各種資源的利用

2019-09-06 23:33:26
字體:
來源:轉載
供稿:網友

                    工作單位: 煙臺南大街建行科技部

   在編寫程序的過程中,經常要用到各種資源。比如說,想給自己的程序換個自己的圖標,使用一些活潑的光標來增加趣味性,播放一些聲音和動畫文件,或者使用別人寫好的程序來實現某個功能。我們往往希望將這些資源直接放到EXE文件中以形成一個單獨的可執行文件,這就存在一個如何在運行時訪問和使用這些資源的問題。
   
 ----在編譯期間,這就要用到一種文件,以.rc結尾的資源定義文件。
   
 ----一:RC文件
   
 ---- rc文件是個文本文件,它的格式很簡單,按如下格式定義:
   
 ----資源標識符資源類型資源的路徑
   
 ----以下的rc文件定義了一個聲音資源,兩個光標資源,三個圖標資源和一個exe文件資源。
   
src1.rc:
 S1/tWAV     wav1.Wav
 C1/tCURSOR  cursor1.cur
 C2/tCURSOR  cursor2.cur
 I1/tICON    icone1.ico
 I2/tICON    icone2.ico
 I3/tICON    icone3.ico
 unzip     EXEFILE  pkunzip.exe

   
 ----你可以將寫好的rc文件加到你
  的project(項目)中。你也可以手工將其編譯為供程序直接使用的二進制資源文件(.res文件)。在BCB3.0中,可以使用命令行:brcc32 src1.rc src1.res。
   
 ----二:資源的使用
   
 ----下面,按照使用的簡繁程度,依次說明各類資源的使用方法。需要說明的是,下面講述的使用方法,在別的編譯環境下(BC, VC等)也是一樣的。
   
 ---- 1:建立一個新的項目
 ----啟動BCB3.0,選FILE- >new- >Application 建立一個新的項目。
   
 ----在project- >Add to Project中,加入寫好的src1.rc文件。當然,那些聲音、光標、圖標文件都應該存在。
   
 ----這時,我們有了一個空的窗體(Form)。
   
   
 ---- 2:能夠利用windows API函數直接訪問的資源有:
   
圖標   LoadIcon()
光標   LoadCursor()
加速表 LoadAccelerators()
位圖   LoadBitmap()
菜單   LoadMenu()
字符串 LoadString()

   
 ----前五個API函數使用方法都一樣,帶兩個參數。
   
 ----第一個參數指明資源的存放地,第二個參數為rc文件中資源的標識。
   
 ----字符串LoadString除這兩個參數外,還有兩個參數,指明字符串緩沖區的地址和大小。
   
 ----下面的一小段程序示范了圖標和光標的使用。
   
 ----在Form上放置一個按紐,在其OnClick事件中加入以下代碼:
   
void __fastcall TForm1::Button1Click(Tobject *Sender)
{
  //將光標形狀改為自己定義的:
 Screen- >Cursors[crDefault] = LoadCursor( Hinstance, "C1");
 //將圖標改為自己定義的:
 Icon = new Ticon() ;
 Icon- >Handle = LoadIcon(Hinstance,"I1");
 Application- >Icon = Icon ;
}

 ----其中的Hinstance指示資源所在地為執行文件。編譯執行后,點擊該按紐,光標和圖標都會換成新的。
   
 ---- 3:能夠通過windows API使用的資源
 ----對于聲音、動畫等文件,可以使用windows API函數播放。但是不象上面幾種資源,需要遵循一定的步驟。如下所示,依次調用FindResource, LoadResource, LockResource函數,來播放一個Wav聲音文件。
   
 ----(當然,獨立的聲音文件可以在運行時直接播放。我們這里討論的是將wav文件編譯進EXE文件的情況)
   
 ----在Form上放置第二個按紐,在其OnClick事件中加入以下代碼:
   
void __fastcall TForm1::Button2Click(Tobject *Sender)
{
//定義資源塊
char *wav_handle ;
//裝入Wav文件
HRSRC h = FindResource(Hinstance,"S1","WAV");
  HGLOBAL h1 = LoadResource(Hinstance, h);
  wav_handle = (char *)LockResource(h1);
//播放Wav文件。由于Wav文件裝載在內存中,
   sndPlaySound函數要用SND_MEMORY參數
sndPlaySound(wav_handle, SND_MEMORY | SND_SYNC);
}

   
 ----編譯執行后,點擊該按紐,會播放一次聲音。
   
 ----對于動畫等文件,使用方式類似Wav文件。(BCB提供了一個Tanimate控件,可以播放無聲的Avi文件)
   
 ---- 4:不能直接通過windows API使用的資源    
 ----此種資源不能夠由windows API直接訪問和執行。但是,我們可以用一種變通的方法來使用它。
   
 ----下面示范如何使用pkunzip.exe,思路如下:程序運行時,將pkunzip.exe從EXE文件中分離出來,放在臨時目錄下,用ShellExecute()執行它。
   
 ----在FORM上放置第三個按紐,在放置兩個Edit ,用來輸入pkunzip.exe的參數。
   
void __fastcall TForm1::Button3Click(Tobject *Sender)
{
char exefile[100], tmppath[100] ;
   unsigned long ret ;
   //檢查pkunzip.exe是否已經存在
GetTempPath( 100, tmppath ) ;
   strcpy( exefile ,(AnsiString(tmppath)+
    AnsiString("/pkunzip.exe") ).c_str() ) ;
ret = GetFileAttributes( exefile ) ;
   if( ret == 0xffffffff )
    { //不存在,則分離出pkunzip.exe
/t  TResourceStream &rs = *new TResourceStream( (int)Hinstance, AnsiString("unzip"),"EXEFILE" ) ;
   rs.SaveToFile( AnsiString(exefile) ) ;
/t   delete &rs ;
  }
 //執行pkunzip.exe
// Edit1- >Text和Edit2- >Text分別為運行時輸入的zip文件名和目標文件目錄。
ShellExecute(Hinstance, "open", exefile, AnsiString("-d ") + Edit1- >Text + " " + Edit2- >Text).c_str(), tmppath, SW_HIDE ) ;
/tApplication- >MessageBox("解壓縮完成", "OK", IDOK ) ;
}

   
 ----此種方法實際上是用時間和空間來換取便利性,有一定的參考價值。例如,DynaDoc的免費分發版本,就是將真正的執行程序壓縮后放在一個有解壓縮功能的“殼”中。運行時,首先是“殼”運行起來,將真正的執行程序解壓縮到臨時目錄,然后去運行它。如果你的程序含有大量的BMP,WAV文件,不妨一試,能讓你的程序減肥不少。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

中文字幕亚洲一区在线观看| 你懂的亚洲视频| 欧美日韩中文字幕精品| 97caopor国产在线视频| 91欧美日韩| 日韩中文在线中文网三级| 国产小视频在线| 精品久久久精品| 国产欧美日韩精品高清二区综合区 | 国产99亚洲| 在线视频三区| 欧美日韩国产高清视频| 成年人看的羞羞网站| 亚洲欧美伊人| 日韩精品丝袜在线| 欧美一卡2卡3卡4卡| 国精品产品一区| 欧美日韩中文字幕日韩欧美| 久久视频www| 日韩三级一区二区| 日韩三级在线播放| 午夜亚洲一区| 欧美国产一级| 一区二区精品| 日韩在线二区| 天天综合日日夜夜精品| 亚洲男女av一区二区| 一级片免费在线播放| 欧美日韩精品欧美日韩精品一| 成年人黄国产| 久本草在线中文字幕亚洲欧美| 精品日本视频| 欧美国产三级| 日韩三级一区| 日韩不卡中文字幕| 色屁屁一区二区| 在线国产1区| 国产超级va在线视频| 激情综合色综合久久| 中文字幕在线观看国产| 日韩中文在线中文网三级| 国产成人精品三级| 欧美一级搡bbbb搡bbbb| 欧美日韩国产三级| 日韩免费电影网站| 国产三级在线观看视频| 国产一级视频| 深夜福利一区二区| 免费精品国产自产拍观看| 91精品国产91久久久久久不卡| 91精品在线观| 亚洲福利视频专区| 日韩欧美一二三| 欧美国产综合视频| 午夜黄色小视频| 在线视频一区二区三区在线播放 | 日韩一二三四区| 日韩av不卡在线观看| 日韩欧美在线字幕| 国产福利一区二区| 中文字幕在线视频日韩| 日韩精品视频网| 日韩欧美一级二级三级久久久| 一区二区在线观| av中文资源在线| 91麻豆视频网站| 日韩av一区二| 在线视频你懂得一区| 久久视频免费看| 精品一区二区三区中文字幕 | 国产网站欧美日韩免费精品在线观看| 精品日韩在线播放| 国产视频二区| 国产一二三四| 国产三级视频网站| 中文字幕亚洲视频| 欧美日韩国产免费观看| 国产午夜在线观看| 一区二区不卡在线播放| 国产又粗又猛又爽又黄91精品| 91精品蜜臀在线一区尤物| 一区二区三区在线|网站| 日韩a一区二区| 日韩欧美中文| 日韩欧美综合| 亚洲综合在线小说| 欧美日韩精品中文字幕| 精品日韩在线观看| 国产日韩精品电影| a级在线免费观看| 欧美一级免费看| 日韩精品视频免费看| 精品日韩99亚洲| www.老鸭窝.com| 国产羞羞视频在线播放| 精品久久久精品| 一区在线播放视频| 国产区视频在线观看| 国产一级视频| 欧美日韩激情在线一区二区三区 | 日韩欧美亚洲区| 日韩国产欧美在线视频| 亚洲女人天堂色在线7777| 欧美日韩在线不卡| 国产日韩av一区| 老司机久久99久久精品播放免费| 久久久精品福利| 日韩欧美国产不卡| 亚洲欧洲国产视频| wwwwww国产| 久久久综合av| 91精品国产综合久久精品| 久久久综合精品| 国产日韩亚洲欧美| 一区二区精品免费| 亚洲热线99精品视频| 一本久久a久久精品亚洲| 欧美日韩成人综合| 国产日韩电影| 亚洲第一中文字幕在线观看| 91精品国产自产观看在线| 日韩精品在线私人| 亚洲 欧美 日韩系列| 日韩你懂的电影在线观看| 亚洲福利在线视频| 日韩在线观看a| 91精品视频在线| 中文字幕日韩欧美| 91精品国产综合久久香蕉的特点| 日韩视频免费直播| 极品久久久久久| 中文字幕日韩视频| 91色在线看| 免费在线亚洲| 日韩欧美成人一区二区三区| 欧美日韩国产高清视频| 午夜av一区二区| 国产欧美日韩精品综合| 亚洲欧美日本国产专区一区| 精品国产欧美日韩| 国产欧美日韩在线观看| 亚洲欧美99| 91精品国产综合久久久久久漫画 | 国产一区久久| 不卡在线一区二区| 日本熟女一区二区| 日韩在线二区| 欧美日韩高清在线播放| 久久久精品国产99久久精品芒果| 国产在线日韩欧美| 国产九九在线| 中文字幕亚洲欧美| 亚洲欧洲日韩精品在线| 国产乱码在线观看| 91国内精品在线视频| 欧美不卡123| 91精品在线观看视频| 在线观看一区| 91精品久久久久久久久久| 日韩中文字幕在线观看视频| 亚洲视频电影在线| 黄色在线资源| 中文字幕日韩高清| 日韩中文字幕二区| 欧美日韩国产不卡| 丰满少妇一区| 91精品国产自产在线丝袜啪| 国产一级片播放| 日韩欧美三级视频| 亚洲视频在线观看日本a| 中文字幕日韩视频| 免费国产成人看片在线| 激情综合色综合久久| 欧美日韩成人一区| 日韩久久久精品| 日韩视频在线观看一区| 国产中文在线播放| 国产一级网站视频在线| 日韩在线视频观看| 欧美日韩一二三四| 国产激情久久久| 欧美日韩国产一二三| 成人精品视频一区| 欧美日韩在线观看一区| av免费不卡国产观看| 国产视频1区2区| 中文国产字幕在线观看| 精品日韩av| 日韩不卡av| 精品一区二区三区中文字幕在线| 中文字幕亚洲高清| 日韩精品国产欧美| 国产区视频在线观看| 欧美亚洲国产免费| 精品亚洲综合| 中文字幕精品亚洲| 欧美日韩亚洲系列| 91日韩中文字幕| 一区二区中文视频| 日韩午夜黄色| 成人精品视频一区| 九七久久人人| 亚洲成a人片在线www| 国产一级久久久| 精品欧美不卡一区二区在线观看| 在线视频不卡国产V| 亚洲福利在线观看| 日韩欧美不卡在线| 日韩视频在线一区| 国产一级免费| 亚洲视频电影在线| 本道综合精品| 中文在线不卡| 日韩精品高清不卡| 亚洲免费视频一区| 91精品国产高清| 日本免费在线视频不卡一不卡二| 国产欧美中文字幕| 久久久久久自在自线| 精品国产999| 国产主播中文字幕| 免费视频中文字幕| 欧美日韩亚洲一| 亚洲第一页中文字幕| 欧美日韩精品欧美日韩精品一| 精品国产免费视频| 精品亚洲综合| 亚州黄色一级| 日韩在线视频免费观看高清中文| 深夜日韩欧美| 最近中文字幕在线中文视频| 亚洲久草视频| 国产亚洲二区| 69免费视频| 亚洲乱码中文字幕| 一区在线播放视频| 久久精品网站免费观看| 中文字幕日韩第一页| 国产偷久久久精品专区| 91精品国产综合久久香蕉最新版| 国产高清精品在线观看| 日韩在线a电影| 中文字幕在线视频网| 欧美日韩亚洲不卡| 欧美日韩一级片在线观看| 欧美日韩高清不卡| 国产成人中文字幕| 成人精品视频一区| 亚洲欧美99| 伊人国产视频| 91精品国产日韩91久久久久久| 1区不卡电影| 欧美日韩精品不卡| 91麻豆精品在线| 亚洲视频一二三四| 欧美亚洲国产日韩| 欧美日韩第一| 中文字幕日韩免费视频| 欧美另类久久久品| 亚洲国内精品视频| 国产日韩精品在线看| 欧美日韩精品免费| 91欧美日韩| 精品中文字幕视频| 日韩免费高清一区二区| 欧洲一级精品| 国产福利在线播放| 国产免费永久在线观看| 99精品免费观看| 日韩欧美亚洲视频| 亚洲综合日韩中文字幕v在线| 99在线精品视频免费观看20| 国产黄色在线播放| 中文字幕日韩在线观看| 国产在线黄色片| 国产成人精品免费网站| 国产一区精品在线| 久久精品国产91精品亚洲| 欧美高清视频一区二区三区| 久久手机免费观看| 久久99精品久久久久久青青日本| 亚洲素人一区二区| 中文字幕狠狠干| 欧美日本精品| 中文在线а√在线8| 婷婷中文字幕一区三区| 亚洲成av人片在线| 日韩欧美国产三级| 日韩欧美国产亚洲| aa国产成人| 欧美不卡123| 日韩精品视频在线播放| 日韩精品福利视频| 九九视频精品免费| 久久久综合av| 91欧美在线| 在线精品日韩| 精品视频资源站| 久久精品卡一| 91精品国产全国免费观看 | 一区二区三区四区五区视频在线观看| 精品视频—区二区三区免费| 欧美一级久久久久久久久大| 国产性一级片| 午夜av一区| 中文在线第一页| 欧美日韩国产首页| 日韩在线高清| 91精品国产自产91精品| 中文字幕日韩免费视频| 日韩欧美国产高清| 中文字幕在线播放一区| 在线国产一级| 亚洲社区在线| 久久手机免费观看| 国产三级在线| 中文字幕欧美人妻精品一区蜜臀 | 日韩在线欧美| 1024国产在线| 69堂精品视频在线播放| 精品中文字幕在线| 欧美日韩精品欧美日韩精品| 日韩 国产 一区| 中文字幕在线播出| 欧美日韩中文字幕在线观看| 欧美三级免费观看| 国产乱码午夜在线视频| 欧美日韩999| 国产对白在线| 欧美日韩精品综合在线 | 91精品国产综合久久久久久漫画| 黄色一区二区在线| 99久久婷婷| 日韩在线观看视频一区二区| 久久视频在线免费观看| 一区二区在线视频播放| 欧美日韩三级在线观看| 久草亚洲一区| 久久精品夜夜夜夜久久| 成人ww免费完整版在线观看| 精品极品三级久久久久| 欧美日韩国产三级| 日韩在线一区二区视频| 欧美日韩中文国产| 日韩欧美国产成人一区二区| 国产一级免费在线观看| 中文亚洲免费| 中文字幕日韩在线视频| 亚洲 欧美 中文字幕| 亚洲成人7777| 日韩一二三四区| 日韩视频在线观看视频| 精品在线一区二区三区| 国产区在线看| 国产综合成人久久大片91| 一区二区日韩免费看| 日韩欧美在线1卡| 中文字幕亚洲二区 | 国产日韩三级| 国产欧美日韩精品高清二区综合区| 国产黄色小视频| 中文字幕亚洲一区在线观看| 日韩精品 欧美| 日韩精品大片| 精品视频123区在线观看| 日韩中文在线视频| 国产黄色一级片| 亚洲视频一二三四| 91精品国产入口| 日韩激情一区| 日韩欧美中文在线视频| 亚洲中午字幕| 中文字幕人成乱码在线观看| 亚洲免费精品| 99精品在线播放| 国产高清不卡av| 欧美 日韩 国产 高清| 91久久精品国产91久久| 一区二区中文字幕在线| 日韩精品a在线观看91| 91一区二区| 欧美日韩一级片在线观看| 最近中文字幕在线中文视频| 91精品视频播放| 日韩三级高清在线| 国产日韩精品视频| 中文字幕精品亚洲| 欧美日韩国产黄色| 欧美国产一区视频在线观看| 久久久精品日韩| 午夜私人影院在线观看| 国产日产一区二区| 欧美日韩在线网站| 人成免费在线视频| 亚洲视频 中文字幕| 日韩av一区二区在线观看| 精品极品三级久久久久| 日韩高清在线一区二区| 欧美久久久网站| 国产三级做爰在线观看|