リソース文字列

提供: Appmethod Topics
移動先: 案内検索

VCL に対する言語サポート(C++) への移動


リソース文字列を使用するコードが Object Pascal のユニットにある場合、Object Pascal コンパイラ(DCC32)は、ヘッダー ファイルの生成時に、リソース文字列ごとにグローバル変数とそれに対応するプリプロセッサ マクロを生成します。このマクロは、リソース文字列を自動的に読み込むのに使用され、C++ コード内でリソース文字列が参照されているすべての箇所で使用されることを目的としています。たとえば、Object Pascal コードの resourcestring セクションに以下の内容が含まれているとしましょう。

 unit MyUnit;
 
 interface
 
 resourcestring
     Warning = 'Be careful when accessing string resources.';
 
 implementation
 begin
 end.

これに対応して Object Pascal コンパイラで生成される Appmethod C++ 用のコードは次のようなものになるでしょう。

 extern PACKAGE System::Resource ResourceString _Warning;
 #define Myunit_Warning System::LoadResourceString(&Myunit::_Warning)
メモ:
  • C++ が大文字/小文字を区別する言語であるため、C++ ではユニット名は正規化されます。ユニット名 "MyUnit" が C++ では "Myunit" になるのはそのためです。
  • "_Warning" は、Object Pascal コンパイラで生成される ResourceString の他のあらゆるインスタンスと同じように、"Myunit" 名前空間内に宣言されるため、Myunit::_Warning としてアクセスする必要があります。
  • #define 行があるため、LoadResourceString を明示的に呼び出さなくても、エクスポートされた Object Pascal リソース文字列を "Myunit_Warning" として使用することができます。

関連項目