警告 C28285

関数 'function-name' の場合、'annotation' の構文エラー

解説

Code Analysis ツールは、SAL 注釈の構文エラーについてこの警告をレポートします。 SAL パーサーは、形式に誤りがある注釈を破棄して回復します。 使用されている SAL 注釈のドキュメントをダブルチェックし、注釈を簡略化しようとします。 直接などの __declspec("SAL_begin") 実装レイヤー注釈を使用しないでください。 そのレイヤーを使用している場合は、次のように_In_//_Out__Ret_上位のレイヤーに変更します。 詳細については、「関数パラメーターと戻り値に注釈を付ける」を参照してください

この警告が発生するコード例を次に示します。 引数 (2,n) の形式が正しくありません。マクロを展開すると C28285 警告が _Out_writes_z_ 表示されます。

void example_func(_Out_writes_z_((2,n)) char* buffer, int n)
{
    buffer[n] = '\0';
}

次のコードでは、形式が正しくない注釈を修正することで、この警告を修復します

void example_func(_Out_writes_z_(n) char* buffer, int n)
{
    buffer[n] = '\0';
}