Поделиться через


MarkProfile

Метод MarkProfile вставляет метку профиля в VSP-файл.Чтобы вставить метку и комментарий, необходимо включить профилирование для потока, содержащего функцию MarkProfile.

PROFILE_COMMAND_STATUS PROFILERAPI MarkProfile( long lMarker );

Параметры

lMarker

Вставляемый токен.токен должен быть больше или равен нулю (0).

Значение свойства или возвращаемое значение

Функция указывает на успешное выполнение или сбой посредством перечисления PROFILE_COMMAND_STATUS.Ниже перечислены возможные возвращаемые значения.

Enumerator

Описание

MARK_ERROR_MARKER_RESERVED

Параметр меньше или равен нулю.Эти значения зарезервированы.Метка и комментарий не записываются.

MARK_ERROR_MODE_NEVER

При вызове функции для режима профилирования было задано значение NEVER.Метка и комментарий не записываются.

MARK_ERROR_MODE_OFF

При вызове функции для режима профилирования было задано значение OFF.Метка и комментарий не записываются.

MARK_ERROR_NO_SUPPORT

В данном контексте поддержка меток отсутствует.Метка и комментарий не записываются.

MARK_ERROR_OUTOFMEMORY

Недостаточно памяти для записи события.Метка и комментарий не записываются.

MARK_TEXTTOOLONG

Длина строки превышает максимальный предел (256 знаков).Строка комментария усекается, а метка и комментарий записываются.

MARK_OK

При успешном выполнении возвращается значение MARK_OK.

Заметки

Если профилируется поток, содержащий функцию MarkProfile, значение метки вставляется в VSP-файл при каждом выполнении кода.Функцию MarkProfile можно вызывать несколько раз.

Метки профилирования имеют глобальную область видимости.Например, метка профиля, вставленная в поток, может использоваться для отметки начала и конца сегмента данных в любом потоке, определенном в .VSP-файле.

Состояние профилирования для потока, который содержит функцию метки профиля, должно быть включено, если метки и комментарии вставлены при помощи команды Mark или функций API (CommentMarkAtProfile, CommentMarkProfile или MarkProfile).

Важное примечаниеВажно

Метод MarkProfile следует использовать только при профилировании с инструментированием.

Эквивалент в .NET Framework

Microsoft.VisualStudio.Profiler.dll

Сведения о функции

Заголовок: объявлен в файле VSPerf.h.

Импортируемая библиотека: VSPerf.lib

Пример

В следующем коде демонстрируется использование функции MarkProfile.

void ExerciseMarkProfile()
{
    // Declare and initialize variables to pass to 
    // MarkProfile.  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.
    int markId = 03;

    // Declare enumeration to hold return value of 
    // call to MarkProfile.
    PROFILE_COMMAND_STATUS markResult;

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

    markResult = MarkProfile(markId);

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

#ifdef DEBUG
    OutputDebugString(tchBuffer);
#endif
}

См. также

Другие ресурсы

Справочник по API-интерфейсам профилировщика Visual Studio (машинный код)