2

状況は次のとおりです。

unit abc;

interface

resourcestring
  aabbcc = 'my text here';

implementation

end.

アプリケーションからエラー コード「aabbcc」を受け​​取りました。エラーコードでリソース名 aabbcc にアクセスできますか?

4

2 に答える 2

1

resourcestring文字列テーブル リソースにコンパイルされます。これらは、数値識別子によって識別されます。コンパイラは、宣言されたresourcestringインスタンスと数値識別子の間のマップを維持します。にアクセスするとresourcestring、コンパイラは数値識別子を認識し、その識別子を使用するコードを発行します。resourcestring基本的に、あなたが望んでいることは、あなたの名前と数値識別子からマッピングできるようにすることです。残念ながら、そのマップはコンパイル中にしか存在しません。実行可能ファイルには含まれていません。

他の唯一の希望は、コンパイラがリソース文字列の RTTI 情報を生成することです。ただし、私が非常に間違っていない限り、これは行いません。

これらの制約を考えると、名前とリソース文字列をマッピングする独自のメカニズムを考え出す必要があります。1 つの可能性は、組み込みの の使用を避けresourcestring、文字列テーブル リソースとその識別子を独自のメカニズムで管理することです。

于 2015-03-19T13:26:15.643 に答える