我对做.dll文件一点不懂,包括怎样建,我想把.jpg文件先放在.res资源文件。
然后存放在.dll,在程序再调用,完了再释放。这整个流程怎样写。200分,不够再加。在线
能讲清楚立即放200分。

解决方案 »

  1.   

    Mypic Rcdata "c:\windows\desktop\a.jpg"
    这个.res文件我已经生成了。
    1.样做一个。dll ,再把.res文件放进去,在程序里调用。2,怎样将图片在程序里读出来,调用释放
      

  2.   

    New里选择Dll Wizard就OK了,简单得很
    library L1;
    uses
      ...;
     {$R myJPG.res}// 这 部 分 是 我 们 自 己 加 入 的 自 定 义 资 源 文 件一个程序调用该DLL
    begin
       GetModuleHandle...//获得DLL句柄,MYJPG是PIC中的资源,PIC资源在DLL中
       With TResourceStream.Create(DLLInsatnce, 'MYJPG', 'Rcdata') do
        begin
          SaveToFile(...);// 保存到文件,流也可以...
          //保存到TBitMap的流中,不就可以显示了
          Free;
        end;
    end;
      

  3.   

    老大,如果你这段代码以能调通过吗?
    library L1;
    uses
      ...;
     {$R myJPG.res}// 好像后面还在几行代码没写上。怎样写。您能写完整吗?
      

  4.   

    我在.rc文件里是这么写的。 
    Mypic Rcdata "c:\windows\desktop\a.jpg"
    编译成pic.res新建了一个.dll
    library Project2;
    uses
      SysUtils,
      Classes;
    {$R Pic.res }
    end.
    在程序里调用
    uses jpeg//implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      Stream:TResourceStream;
      MyJpg: TJpegImage;
      h: THandle;
      begin
        h := LoadLibrary('Project2.DLL');
        if h <= BadDllLoad then
          ShowMessage('Bad Dll Load')
        else begin
             Stream := TResourceStream.Create  //执行到这出错(Hinstance,'Mypic',RT_RCDATA) ;
             MyJpg:=TJpegImage.Create;
             MyJpg.LoadFromStream (Stream) ;
             Image1.Picture.Assign(MyJpg);
             MYJPG.FREE;
          FreeLibrary(h);
        end;end;end.
      

  5.   

    是Stream := TResourceStream.Create(h,'Mypic',RT_RCDATA) ;
    注意不是本地的资源,是DLL的