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

bob*_*bey 5 delphi delphi-xe

我正在使用Delphi XE Starter.我创建了一个CCs.RC文件并将该文件添加到项目中.我的CCs.RC文件中的典型行如下所示:

Danish1cc Text Danish1.cc
Run Code Online (Sandbox Code Playgroud)

直接在我添加的实施线之后

{$R CCs}
Run Code Online (Sandbox Code Playgroud)

当我尝试将此文件读入现有的字符串列表时,我收到一条[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)
Run Code Online (Sandbox Code Playgroud)

我的目标是将文件嵌入我的EXE中,当然能够阅读它:)感谢您的帮助.

And*_*den 9

您的资源类型不匹配.在您的*.RC文件中,您使用的是TEXT在您使用的代码中RCDATA.您必须将*.RC文件更改为

Danish1cc RCDATA Danish1.cc
Run Code Online (Sandbox Code Playgroud)

或者你必须改变

RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
Run Code Online (Sandbox Code Playgroud)

RS := TResourceStream.Create(HInstance, ResName, 'Text');
Run Code Online (Sandbox Code Playgroud)

  • 是的,这是相关文档:[资源定义语句](http://msdn.microsoft.com/en-us/library/windows/desktop/aa381043%28v=vs.85%29.aspx) (3认同)