MarkProfile
Metoda MarkProfile wstawia znacznik profilowania do pliku .vsp.Profilowanie wątku, który zawiera funkcję MarkProfile, musi zostać ustawione na ON, jeśli znacznik ma zostać wstawiony.
PROFILE_COMMAND_STATUS PROFILERAPI MarkProfile( long lMarker );
Parametry
lMarker
Aby wstawić znacznik.Znacznik musi być większy lub równy 0 (zero).
Wartość właściwości/Zwracana wartość
Funkcja określa sukces lub niepowodzenie przy użyciu wyliczenia PROFILE_COMMAND_STATUS.Zwracana wartość może być jedną z następujących:
Moduł wyliczający |
Opis |
---|---|
MARK_ERROR_MARKER_RESERVED |
Parametr jest mniejszy lub równy 0.Wartości te są zastrzeżone.Znak i komentarz nie są rejestrowane. |
MARK_ERROR_MODE_NEVER |
Tryb profilowania został ustawiony na NEVER, gdy funkcja została wywołana.Znak i komentarz nie są rejestrowane. |
MARK_ERROR_MODE_OFF |
Tryb profilowania został ustawiony na OFF przy wywołaniu funkcji.Znak i komentarz nie są rejestrowane. |
MARK_ERROR_NO_SUPPORT |
Brak obsługi znacznika w tym kontekście.Znak i komentarz nie są rejestrowane. |
MARK_ERROR_OUTOFMEMORY |
Brak dostępnej pamięci, aby zarejestrować zdarzenie.Znak i komentarz nie są rejestrowane. |
MARK_TEXTTOOLONG |
Ciąg przekracza maksymalną długość 256 znaków.Ciąg komentarza został obcięty, a znacznik i komentarz są rejestrowane. |
MARK_OK |
Zwracana wartość MARK_OK oznacza powodzenie. |
Uwagi
Wartość znacznika jest wstawiana do pliku .vsp, za każdym razem, gdy kod jest uruchamiany, jeśli wątek zawierający funkcję MarkProfile jest profilowany.Funkcja MarkProfile może zostać wywołana wielokrotnie.
Znaczniki profilowania mają zakres globalny.Na przykład, znacznik profilowania wstawiony w jednym wątku może zostać użyty do oznaczenia początku lub końca segmentu danych, w dowolnym wątku w pliku .vsp.
Stan profilowania wątku, który zawiera funkcję profilowania znacznika, musi być włączony, gdy znaczniki i komentarze są wstawiane za pomocą polecenia Mark lub funkcji API (CommentMarkAtProfile, CommentMarkProfile lub MarkProfile).
Ważne |
---|
Metoda MarkProfile powinna być używana jedynie podczas profilowania przy pomocy instrumentacji. |
Odpowiednik w programie .NET Framework
Microsoft.VisualStudio.Profiler.dll
Informacje o funkcji
Nagłówek: Zadeklarowany w VSPerf.h
Importowana biblioteka: VSPerf.lib
Przykład
Poniższy kod ilustruje funkcję 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
}