LS.CALL
GUI 関数におけるローカライズされない文字列の不審な使用
ローカライズされた文字列チェッカーが使用され、ユーザー対面関数でのローカライズされない文字列の使用を点検します。一般に、あるフォームでフォームでユーザーに表示されるすべての文字列は、ローカライズする必要があります。これらは、単純なラベルやボタンタイトルであったり、フォーマット文字列やデータから実行時に組み立てられる、より複雑な文字列であったりします。
重要: これは実験的なチェッカーです。
カスタムナレッジベース (KB)
Klocwork ではナレッジベースを使用して、文字列のソースとして使用される関数およびユーザーに情報を表示するために使用される関数を判断します。このため、KB レコードには次の 2 種類があります。
- ソース KB (LS.SRC): 文字列を返す関数
sprintf - LS.SRC 1:$1:1
Sprintf の最初の引数は文字列です
- Sink KB (xLS): ユーザーに情報を表示する関数
print_string - xLS 1:$1:1
print_string 関数は、ユーザーのために文字列を印刷する関数です。
コード例
コピー
int main()
{
const char* nonLocalizedString = “Hello World”;
print_string(nonLocalizedString); // Line 4.LS.CALL
return 0;
}
Klocwork は、ローカライズされていない文字列を使用する GUI 関数の呼び出しの可能性があることを示すために、4 行目でローカライズされた文字列を作成します。
注意: print_string が GUI 関数であることを知るために、上記のコードを次のレコードを持つ KB とともに実行するべきです: print_string - xLS 1:$1:1。