我的程序如何从RES文件中读取字符串?

Jos*_*hua 2 delphi

我有一个.RC文件,该文件包含在项目中,并且可以编译成res文件。我想做的是访问与“ CompanyName”相关的值。有没有办法引用它?例如类似

string st = VERSIONINFO["CompanyName"]
Run Code Online (Sandbox Code Playgroud)

还是我完全误会了?

我想作为后续工作,字符串表的正确格式是什么?

Rob*_*edy 5

要从程序的字符串表资源中加载字符串,请使用Delphi LoadStr函数。向其传递您要读取的字符串的数字ID。它是Windows LoadStringAPI函数的包装。

Delphi本机支持资源字符串。无需声明const,而是使用resourcestring,并且该字符串将自动包含在编译器生成的字符串表中。您可以在代码中使用该字符串的命名标识符来引用该字符串,运行时库将处理从程序资源中加载该字符串的详细信息。然后,您无需致电LoadStr或其他任何电话。您可以在生成的文件中声明一堆资源字符串,因此它始终是最新的。例如:

// Auto-generated; do not edit
unit Resources;
interface
resourcestring
  CompanyName = '***';
implementation
end.
Run Code Online (Sandbox Code Playgroud)

如果要自己管理字符串表,请参考MSDN文档。例如:

#define IDS_COMPANYNAME 1

STRINGTABLE
BEGIN
  IDS_COMPANYNAME, "***"
END
Run Code Online (Sandbox Code Playgroud)

要在程序中阅读它:

const
  IDS_COMPANYNAME = 1;

var
  CompanyName: string;

CompanyName := LoadStr(IDS_COMPANYNAME);
Run Code Online (Sandbox Code Playgroud)