从资源文件中读取字符串列表

7

我是使用 Delphi XE Starter。我创建了一个 CCs.RC 文件并将该文件添加到项目中。我的 CCs.RC 文件中典型的一行看起来像这样:

Danish1cc Text Danish1.cc

在实现行后直接添加以下内容:
{$R CCs}

当我尝试将此文件读入现有的字符串列表时,我会收到一个[EResNotFound][1]错误消息。以下是我尝试读取文件的代码:

procedure LoadStringListFromResource(const ResName: string;SL : TStringList);
var
  RS: TResourceStream;
begin
  RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
  try
    SL.LoadFromStream(RS);
  finally
    RS.Free;
  end;
end;
///
LoadStringListFromResource('Danish1cc',MySL)

我的目标是将文件嵌入到我的EXE中,当然还要能够读取它 :) 谢谢任何帮助。

2个回答

10

您的资源类型不匹配。在您的*.RC文件中,您使用了TEXT,而在您的代码中,您使用了RCDATA。 您必须更改您的*.RC文件以

Danish1cc RCDATA Danish1.cc

或者你必须进行更改

RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
RS := TResourceStream.Create(HInstance, ResName, 'Text');

3
好的,这是相关文档链接:资源定义语句 - Ondrej Kelle

0

我觉得问题出在这一行 - {$R CCs}

你编译了一个资源文件,那个文件不是叫做CCs.res吗?

如果是的话,你代码中那一行应该是{$R CCs.res}


2
在这种情况下,他将会收到一个编译器错误信息,但实际运行时却得到了一个EResNotFound异常。 - Andreas Hausladen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接