次の方法で共有


CommentMarkProfile

CommentMarkProfile 関数は、.vsp ファイルに数値マーカーと文字列を挿入します。 マークとコメントを挿入するためには、CommentMarkProfile 関数を含むスレッドのプロファイルがオンに設定されている必要があります。

PROFILE_COMMAND_STATUS PROFILERAPI CommentMarkProfile(
                                   long lMarker, 
                                   LPCTSTR szComment);

パラメーター

lMarker

挿入する数値マーカー。 マーカーは 0 以上の値にする必要があります。

szComment

挿入するテキスト文字列へのポインタ。 この文字列は、NULL 終端文字を含めて 256 文字未満にする必要があります。

プロパティ値/戻り値

関数の成功または失敗は、PROFILE_COMMAND_STATUS 列挙型を使って表されます。 戻り値は次のいずれかになります。

列挙子

説明

MARK_ERROR_MARKER_RESERVED

パラメーターは 0 以下です。 これらの値は予約済みです。 マークとコメントは記録されません。

MARK_ERROR_MODE_NEVER

関数が呼び出されたときに、プロファイル モードが NEVER に設定されました。 マークとコメントは記録されません。

MARK_ERROR_MODE_OFF

関数が呼び出されたときに、プロファイル モードが OFF に設定されました。 マークとコメントは記録されません。

MARK_ERROR_NO_SUPPORT

このコンテキストでマークがサポートされていません。 マークとコメントは記録されません。

MARK_ERROR_OUTOFMEMORY

メモリ不足のため、このイベントを記録できません。 マークとコメントは記録されません。

MARK_TEXTTOOLONG

文字列の長さが最大値の 256 文字を超えています。 コメント文字列は切り詰められ、マークとコメントが記録されます。

MARK_OK

成功した場合は MARK_OK が返されます。

解説

VSInstr Mark コマンドまたは関数 (CommentMarkAtProfile、CommentMarkProfile、または MarkProfile) でマークとコメントが挿入されたとき、マークのプロファイル関数を含むスレッドでは、プロファイル状態をオンにする必要があります。

プロファイル マークは、スコープ内でグローバルです。 たとえば、あるスレッドに挿入したプロファイルマークを、.vsp ファイル内の任意のスレッドで使用し、データ セグメントの開始または終了をマークできます。

重要

CommentMarkProfile メソッドは、インストルメンテーションでのみ使用できます。

同等の .NET Framework 関数

Microsoft.VisualStudio.Profiler.dll

関数の情報

ヘッダー

VSPerf.h をインクルードします。

ライブラリ

VSPerf.lib を使用します。

Unicode

CommentMarkProfileW (Unicode) および CommentMarkProfileA (ANSI) として実装します。

使用例

次のコードは、CommentMarkProfile 関数の呼び出しの例です。 ANSI 関数の呼び出しかどうかを判断するために、Win32 の文字列マクロおよび Unicode に関するコンパイラ設定が使用されていることを前提としています。

void ExerciseCommentMarkProfile()
{
    // Declare and initalize variables to pass to 
    // CommentMarkProfile.  The values of these 
    // parameters are assigned based on the needs 
    // of the code; and for the sake of simplicity
    // in this example, the variables are assigned
    // arbitrary values.
    long markId = 01;
    TCHAR * markText = TEXT("Exercising CommentMarkProfile...");

    // Variables used to print output.
    HRESULT hResult;
    TCHAR tchBuffer[256];

    // Declare MarkOperationResult Enumerator.  
    // Holds return value from call to CommentMarkProfile.
    PROFILE_COMMAND_STATUS markResult;

    markResult = CommentMarkProfile(
        markId,
        markText);

    // Format and print result.
    LPCTSTR pszFormat = TEXT("%s %d.\0");
    TCHAR* pszTxt = TEXT("CommentMarkProfile returned");
    hResult = StringCchPrintf(tchBuffer, 256, pszFormat, 
        pszTxt, markResult);

#ifdef DEBUG
    OutputDebugString(tchBuffer);
#endif
}

参照

その他の技術情報

Visual Studio プロファイラー API リファレンス (ネイティブ)