CommentMarkProfile
Обновлен: Ноябрь 2007
Функция CommentMarkProfile вставляет числовую метку и текстовую строку в VSP-файл. Чтобы вставить метку и комментарий, необходимо включить профилирование для потока, содержащего функцию CommentMarkProfile.
PROFILE_COMMAND_STATUS PROFILERAPI CommentMarkProfileA(
long lMarker,
LPCTSTR szComment);
Параметры
lMarker
Вставляемая числовая метка. Метка должна быть больше или равна нулю (0).
szComment
Указатель на вставляемую текстовую строку. Длина строки не должна превышать 256 знаков, включая маркер конца строки NULL.
Значение свойства или возвращаемое значение
Функция указывает на успешное выполнение или сбой посредством перечисления 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
Сведения о функции
Заголовок |
Include VSPerf.h |
Библиотека |
Use VSPerf.lib |
Юникод |
Функция реализована как CommentMarkProfileW (Юникод) и CommentMarkProfileA (ANSI). |
Пример
В следующем коде демонстрируется вызов функции CommentMarkProfile. Предполагается, что в этом примере используется строковый макрос Win32 и параметры компилятора для Юникода, чтобы определить, вызывается ли в коде функция, поддерживающая кодировку ANSI.
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
}
См. также
Другие ресурсы
Справочник по API-интерфейсам профилировщика Visual Studio (машинный код)