zoukankan      html  css  js  c++  java
  • 资源文件的编译

     通常在Delphi的应用程序中,我们会调用到很多的资源,例如图片,动画(AVI),声音,甚至于别的执行文件。当然,把这些资源分布到不同的目录不失为一个好办法,但是有没有可能把这些资源编译成标准的windows资源从而链接到一个执行文件里面呢?     
        
           我们可以自己做一个RC文件,例如   sample.rc   ,RC文件其实就是一个资源文件的描述文本,通过“记事本”程序创建就行了。然后可以输入一些我们要定义的资源,例如:   
        
      MEN   BITMAP   c:itmapmen.bitmap   
      ARJ   EXEFILE   c:arj.exe   
      MOV   AVI   c:mov.avi   

      其中 BITMAP 、EXEFILE、AVI 可是自己定义名称
        
      然后用BRCC32把这个RC文件编译成sample.res(真正的资源文件)。brcc32.exe   只编译,brc32.exe不但编译,也可与exe文件连接   
        
      在Delphi的工程文件中使用   $R   编译指令让Delphi包括资源到EXE文件里面。   
        
      {$R   sample.res}   
        
      这样我们就可以在这个单一的执行文件中调用资源了。举例如下:   
        
      EXEFILE:   
        
      procedure   ExtractRes(ResType,   ResName,   ResNewName   :   String);   
      var     
      Res   :   TResourceStream;     
      begin   
      Res   :=   TResourceStream.Create(Hinstance,   Resname,   Pchar(ResType));   Res.SavetoFile(ResNewName);   
      Res.Free;     
      end;   


        
      AVI:   
        
      procedure   LoadAVI;   
      begin   
      {Avi1是一个TAnimate类}   
      Avi1.ResName:='AVI';   
      Avi1.Active:=True;   
      end;     
          
      加载JPEG图片文件时需要用以下的方法实现:别忘了加Jpeg单元哟
    var
        Stream : TResourceStream;
        DLLHandle: THandle;
        Jpg:TJpegimage;
    begin
       DLLHandle := LoadLibrary('dlls/Res.dll'); 
        try
            Jpg := TJPEGImage.Create;
            Stream := TResourceStream.Create(DLLHandle, 'Mainimg', 'JPEG');
            Jpg.LoadFromStream(Stream);
            img1.Picture.Assign(Jpg);
        finally
            FreeLibrary(DLLHandle);
            Stream.Free;
            Jpg.Free;
        end;
    end;

    http://www.cnblogs.com/sonicit/archive/2007/06/17/786135.html

  • 相关阅读:
    [转] Actor生命周期理解
    [转] Linux History(历史)命令用法 15 例
    [转] CDH6 安装文章链接收集
    [转] org.scalatest.FunSuite Scala Examples
    [转] Mock以及Mockito的使用
    关于 maven 打包直接运行的 fat jar (uber jar) 时需要包含本地文件系统第三方 jar 文件的问题
    [转] flume使用(六):后台启动及日志查看
    [转] etcd 搭建与使用
    [转] 2018年最新桌面CPU性能排行天梯图(含至强处理器)
    让 Linux grep 的输出不换行
  • 原文地址:https://www.cnblogs.com/findumars/p/6329671.html
Copyright © 2011-2022 走看看