Lazarus资源 - 使用资源会导致链接错误

时间:2014-09-25 09:28:47

标签: resources embedded-resource lazarus

我四处搜索但发现没有任何解决方案,所以我试试这里:

我想整合我的程序使用并在运行时加载它们的图像(我之前以这种方式用delphi完成)。

我的想法是 1.)使用

创建资源文件
lazres <resourcename> <imagename>

2。)在源

中包含资源文件
{$R <resourcename>}

3。)编译 结果:

Unable to find file "Debug: Trying to open file /medi/media/work/src.hg/ylazlib/test/test.src/libtest6.lpr".

上面的文件名是项目源,应该找到。 我发现这个错误几乎是由无效的资源文件引起的。 但是这个信息应该以更好的方式解释问题。

如果我重命名资源文件(因此链接器无法找到它),我会得到一个正确的&#39;错误信息。在这种情况下,将打开需要资源的单元,并且消息指出无法打开资源文件。

那我在这里做错了什么? (我还试图以不同的格式将图像插入资源 - 因此图像本身可能不是问题) 任何帮助apreciated - 提前谢谢 注:OS:debian sid [fpc 2.6.4] Lazarus SVN

1 个答案:

答案 0 :(得分:4)

遵循的程序与Delphi略有不同。作为explained here,您必须

  • LResources添加到uses子句。
  • 在初始化部分包含Lazres生成的res文件。
  • 使用{$I myRes}而不是{$R myRes}

使用

进行快速测试

console lzares cmd:

C:\Users\me\Desktop\temp>lazres res.res project1.lpr=blah

源代码:     单位Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,LResources;

type
  TForm1 = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.lfm}

initialization
{$I res.res}

end.

编译并运行正常。然后,如果它们是原始数据,加载res可能有点棘手,但对于图片而言,它非常简单,参见上一个链接中的示例。