EN JP CN

LS.CALL

LS.CALL

GUI 関数におけるローカライズされない文字列の不審な使用

ローカライズされた文字列チェッカーが使用され、ユーザー対面関数でのローカライズされない文字列の使用を点検します。一般に、あるフォームでフォームでユーザーに表示されるすべての文字列は、ローカライズする必要があります。これらは、単純なラベルやボタンタイトルであったり、フォーマット文字列やデータから実行時に組み立てられる、より複雑な文字列であったりします。
重要: これは実験的なチェッカーです。

カスタムナレッジベース (KB)

Klocwork ではナレッジベースを使用して、文字列のソースとして使用される関数およびユーザーに情報を表示するために使用される関数を判断します。このため、KB レコードには次の 2 種類があります。
  1. ソース KB (LS.SRC):文字列を返す関数

    sprintf - LS.SRC 1:$1:1

    Sprintf の最初の引数は文字列です

  2. Sink KB (xLS):ユーザーに情報を表示する関数

    print_string - xLS 1:$1:1

    print_string 関数は、ユーザーのために文字列を印刷する関数です。

ナレッジベースの詳細については下記を参照してください C/C++ knowledge base (ナレッジベース) リファレンス

コード例

1    int main()
2    {
3        const char* nonLocalizedString = “Hello World”;
4        print_string(nonLocalizedString); // Line 4. LS.CALL
5        return 0;
6    }
Klocwork は、ローカライズされていない文字列を使用する GUI 関数の呼び出しの可能性があることを示すために、4行目でローカライズされた文字列を作成します。
注: print_string が GUI 関数であることを知るために、上記のコードを以下のレコードを持つ KB とともに実行するべきです。print_string - xLS 1:$1:1

関連チェッカー