C++ の new 演算子を使って文字列 s のコピーを作成します. 従って,コピーは delete 演算子で削除できます.
この関数は撤廃されています.wxString クラスを使って ください.
現在のlocale における str の翻訳メッセージを 返します.str に対応するメッセージが読み込み済みのメッセージ カタログ (国際化の概要 参照) にない場合,もとの文字列を返します.デバッグビルドの場合には エラーメッセージをログに出力します - このため,まだ翻訳されていない メッセージを調べるのに役立ちます.この関数は非常に頻繁に使われるため, もうひとつの (かつ Unix の世界ではよく使われている) 構文, _() が提供されています: このマクロは wxGetTranslation と同じ処理を行います.
上の二つの関数プロトタイプのうち後者の形式は,単数と複数形の表現が
異なる英語や,複数形の表現が異なる言語における翻訳メッセージを取得
する際に用います.この形式には二つの引数が追加されています:
str パラメタには,変換したい文字列の単数形を入れねばなりません.
この文字列はカタログの検索にも使われるので注意してください.
strPlural パラメタは (英語における) 複数形です.
n パラメタは,どの複数形を用いるかを決める際に使います.
メッセージカタログ中に翻訳メッセージが見つからなかった場合,
`n == 1' ならstr を返し,そうでなければ strPlural を
返します.
複数形の扱いに関する詳しい情報は,
GNU gettext manual (#2
) を参照してください.
どちらの形式も wxLocale::GetString を呼び出します.
ポインタ p が NULL であるか,空文字列を指している場合には true を,そうでなければ false を返します.
pi が p2 より小さい場合,等しい場合,大きい場合に,それぞれ 負,ゼロ,正の値を返します.大小文字を区別して比較を行います.
この関数は大小文字の区別をせずに比較を行う標準 C 関数 stricmp() の機能を補完するためのものです.
pi が p2 より小さい場合,等しい場合,大きい場合に,それぞれ 負,ゼロ,正の値を返します.大小文字を区別せず比較をおこないます.
この関数は大小文字の区別をせずに比較を行う標準 C 関数 stricmp() の機能を補完するためのものです.
NB: この関数は撤廃されています. wxString::Find を使ってください.
s1 が s2 内にある場合に true を返します. exact が false の場合,大小文字の区別をしません. subString が false の場合,部分文字列のマッチングを 行いません.
NB: この関数は撤廃されています. wxString を使ってください.
#define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0))
のように定義されているマクロです.
標準 C 関数 strlen() を安全に行えるようにしたものです: strlen() と全く同じく動作します(文字列の長さを返します)が, p が NULL ポインタの場合には 0 を返します.
この関数は危険な標準 C 関数 sprintf() を置き換えるためのもので, いくつかのプラットフォームで利用できる snprintf() に似ています. sprintf() との違いは,追加の引数 - バッファサイズ - があり, バッファをオーバフローさせないという点です.
バッファにコピーされたキャラクタ数を返します.バッファがに十分な領域が ない場合には -1 を返します.
See also
wxT() はマクロで,キャラクタおよび文字列リテラル (すなわち 'x' や "foo") を Unicode ビルドの設定下で自動的に Unicode に変換 します. 詳しくはUnicode の概要 を参照してください.
ASCII ビルドでは,このマクロは引数に渡した文字列をそのまま返します. 実際のマクロ定義は以下のようになっています:
#ifdef UNICODE #define wxT(x) L ## x #else // !Unicode #define wxT(x) x #endif
このマクロは,通常のプログラムコード中では何も行いません - このマクロは 単に引数の値を展開するだけです (ただし, Unicode ビルドでは, wxT と同じになるので, wxT と同時に使わないでください. さもなければ,メッセージが翻訳によって本当に判別不能なものに変換されて しまいます).
とはいえ,この関数には,文字列リテラルを xgettext プログラムの生成 するメッセージカタログで展開するようマークするという働きがあります. 通常,この操作は _() で行うのですが, _() は文字列を展開対象としてマークするだけでなく, wxGetTranslation に展開されるため, アレイを静的に初期化したい場合などに利用できません.
以下に,もっと分かりやすく例を示します: 曜日名が入った静的な文字列アレイが あり,それを翻訳したいとしましょう (ちなみにこれは例としてあまりよくは ありません.というのも,実際には wxDateTime を 使えばローカライズされた曜日名を得られるからです).もし,以下のような コード
static const wxChar * const weekdays[] = { _("Mon"), ..., _("Sun") }; ... // use weekdays[n] as usual
を書くと,関数呼び出しはアレイの初期化部分内に隠されてしまうため, コンパイルできなくなります.従って,ここでは
static const wxChar * const weekdays[] = { wxTRANSLATE("Mon"), ..., wxTRANSLATE("Sun") }; ... // use wxGetTranslation(weekdays[n])
のようにせねばなりません.
上の例で wxTRANSLATE() を省略してもコードをコンパイル できるはずですが ,プログラムのメッセージカタログに曜日名の 翻訳メッセージは入っていないはずなので, wxGetTranslation がメッセージ を見つけられず,期待通りに動作しないでしょう.
wxSnprintf と同じですが,任意個数のパラメタを とる代わりに va_list を引数にとります.
See also
このマクロは wxGetTranslation 呼び出しに 展開されます.従って,このマクロは wxTRANSLATE と同様,メッセージを xgettext で展開するようにマークします. ただし,それだけではなく,実行時に文字列の現在のロケールにおける翻訳 を返します.
このマクロを _T() と混同しないように注意 してください!
このマクロは wxT と同じです. wxWidgets 内で定義されている のは,単にこの関数名が Win32 ヘッダで (同じマクロのもう一つの名前, _TEXT() と並んで) 定義されていて, Windows プログラマ にとってより直感的だからです
このマクロを _T() と混同しないように注意 してください!
ymasuda 平成17年11月19日