CommentMarkAtProfile
CommentMarkAtProfile メソッドは、タイムスタンプ値、数値マーク、コメント文字列を .vsp ファイルに挿入します。タイムスタンプ値を使用して外部イベントと同期できます。マークとコメントを挿入するためには、CommentMarkAtProfile 関数を含むスレッドのプロファイルがオンに設定されている必要があります。
PROFILE_COMMAND_STATUS PROFILERAPI CommentMarkAtProfile (
__int64 dnTimestamp,
long lMarker,
LPCTSTR szComment);
パラメーター
dnTimestamp
タイムスタンプ値を表す 64 ビット整数値。
lMarker
挿入する数値マーカー。マーカーは 0 以上の値にする必要があります。
szComment
挿入するテキスト文字列へのポインター。この文字列は、NULL 終端文字を含めて 256 文字未満にする必要があります。
プロパティ値/戻り値
関数の成功または失敗は、PROFILE_COMMAND_STATUS 列挙型を使って表されます。戻り値は次のいずれかになります。
列挙子 |
Description |
---|---|
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 が返されます。 |
解説
Mark コマンドまたは API 関数 (CommentMarkAtProfile、CommentMarkProfile、または MarkProfile) でマークとコメントが挿入されたとき、マークのプロファイル関数を含むスレッドでは、プロファイル状態をオンにする必要があります。プロファイル マークは、スコープ内でグローバルです。たとえば、あるスレッドに挿入したプロファイルマークを、.vsp ファイル内の任意のスレッドで使用し、データ セグメントの開始または終了をマークできます。
重要 |
---|
CommentMarkAtProfile メソッドは、インストルメンテーションでのみ使用してください。 |
同等の .NET Framework 関数
Microsoft.VisualStudio.Profiler.dll
関数の情報
Header |
VSPerf.h をインクルードします。 |
ライブラリ |
VSPerf.lib を使用します。 |
Unicode |
CommentMarkAtProfileW (Unicode) および CommentMarkAtProfileA (ANSI) として実装されます。 |
使用例
次のコードは、CommentMarkAtProfile 関数の汎用的な呼び出しの例です。ANSI 版の関数の呼び出しかどうかを判断するために Win32 の文字列マクロおよび ANSI のコンパイラ設定が使用されていることを前提としています。
void ExerciseCommentMarkAtProfile(void)
{
// Declare and initalize variables to pass to
// CommentMarkAtProfile. 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.
int64 timeStamp = 0x1111;
long markId = 01;
TCHAR * markText = TEXT("Exercising CommentMarkAtProfile...");
// Variables used to print output.
HRESULT hResult;
TCHAR tchBuffer[256];
// Declare MarkOperationResult Enumerator.
// Holds return value from call to CommentMarkAtProfile.
PROFILE_COMMAND_STATUS markResult;
markResult = CommentMarkAtProfile(
timeStamp,
markId,
markText);
// Format and print result.
LPCTSTR pszFormat = TEXT("%s %d.\0");
TCHAR* pszTxt = TEXT("CommentMarkAtProfile returned");
hResult = StringCchPrintf(tchBuffer, 256, pszFormat,
pszTxt, markResult);
#ifdef DEBUG
OutputDebugString(tchBuffer);
#endif
}