Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Gebruik deze klasse om foutopsporingsrapporten naar een benoemde pijp te verzenden.
Syntaxis
class CDebugReportHook
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CDebugReportHook::CDebugReportHook | Roept SetPipeName, SetTimeout en SetHook aan. |
| CDebugReportHook::~CDebugReportHook | Roept CDebugReportHook::RemoveHook aan. |
Openbare methoden
| Naam | Description |
|---|---|
| CDebugReportHook::CDebugReportHookProc | (Statisch) De aangepaste rapportagefunctie die is gekoppeld aan het rapportageproces voor C-runtime voor foutopsporing. |
| CDebugReportHook::RemoveHook | Roep deze methode aan om het verzenden van foutopsporingsrapporten naar de benoemde pijp te stoppen en de vorige rapporthook te herstellen. |
| CDebugReportHook::SetHook | Roep deze methode aan om foutopsporingsrapporten naar de benoemde pijp te verzenden. |
| CDebugReportHook::SetPipeName | Roep deze methode aan om de computer en de naam van de pijp in te stellen waarnaar de foutopsporingsrapporten worden verzonden. |
| CDebugReportHook::SetTimeout | Roep deze methode aan om de tijd in milliseconden in te stellen waarop deze klasse wacht tot de benoemde pijp beschikbaar is. |
Opmerkingen
Maak een exemplaar van deze klasse in foutopsporingsversies van uw services of toepassingen om foutopsporingsrapporten naar een benoemde pijp te verzenden. Foutopsporingsrapporten worden gegenereerd door _CrtDbgReport aan te roepen of door een wrapper te gebruiken voor deze functie, zoals de MACRO's ATLTRACE en ATLASSERT .
Met deze klasse kunt u interactief fouten opsporen in onderdelen die worden uitgevoerd in niet-interactieve vensterstations.
Houd er rekening mee dat foutopsporingsrapporten worden verzonden met behulp van de onderliggende beveiligingscontext van de thread. Imitatie is tijdelijk uitgeschakeld, zodat foutopsporingsrapporten kunnen worden weergegeven in situaties waarin imitatie van gebruikers met lage bevoegdheden plaatsvindt, zoals in webtoepassingen.
Requirements
Header: atlutil.h
CDebugReportHook::CDebugReportHook
Roept SetPipeName, SetTimeout en SetHook aan.
CDebugReportHook(
LPCSTR szMachineName = ".",
LPCSTR szPipeName = "AtlsDbgPipe",
DWORD dwTimeout = 20000) throw();
Parameterwaarden
szMachineName
De naam van de computer waarnaar de foutopsporingsuitvoer moet worden verzonden. Standaard ingesteld op de lokale computer.
szPipeName
De naam van de benoemde pijp waarnaar de uitvoer voor foutopsporing moet worden verzonden.
dwTimeout
De tijd in milliseconden dat deze klasse wacht tot de benoemde pijp beschikbaar is.
CDebugReportHook::~CDebugReportHook
Roept CDebugReportHook::RemoveHook aan.
~CDebugReportHook() throw();
CDebugReportHook::CDebugReportHookProc
De aangepaste rapportagefunctie die is gekoppeld aan het rapportageproces voor C-runtime voor foutopsporing.
static int __cdecl CDebugReportHookProc(
int reportType,
char* message,
int* returnValue) throw();
Parameterwaarden
reportType
Het type rapport (_CRT_WARN, _CRT_ERROR of _CRT_ASSERT).
bericht
De berichttekenreeks.
Returnvalue
De waarde die moet worden geretourneerd door _CrtDbgReport.
Retourwaarde
Retourneert ONWAAR als de haak het betreffende bericht volledig afhandelt, zodat er geen verdere rapportage vereist is. Retourneert WAAR als _CrtDbgReport het bericht op de normale manier moet worden weergegeven.
Opmerkingen
De rapportagefunctie probeert de benoemde pijp te openen en te communiceren met het proces aan de andere kant. Als de pijp bezet is, wacht de rapportagefunctie totdat de pijp vrij is of de time-out verloopt. De time-out kan worden ingesteld door de constructor of een aanroep naar CDebugReportHook::SetTimeout.
De code in deze functie wordt uitgevoerd in de onderliggende beveiligingscontext van de aanroepende thread, dat wil gezegd, imitatie is uitgeschakeld voor de duur van deze functie.
CDebugReportHook::RemoveHook
Roep deze methode aan om het verzenden van foutopsporingsrapporten naar de benoemde pijp te stoppen en de vorige rapporthook te herstellen.
void RemoveHook() throw();
Opmerkingen
Roept _CrtSetReportHook2 aan om de vorige rapporthook te herstellen.
CDebugReportHook::SetHook
Roep deze methode aan om foutopsporingsrapporten naar de benoemde pijp te verzenden.
void SetHook() throw();
Opmerkingen
Roept _CrtSetReportHook2 aan om foutopsporingsrapporten te laten routeren via CDebugReportHookProc naar de benoemde pijp. Deze klasse houdt de vorige rapporthook bij, zodat deze kan worden hersteld wanneer RemoveHook wordt aangeroepen.
CDebugReportHook::SetPipeName
Roep deze methode aan om de computer en de naam van de pijp in te stellen waarnaar de foutopsporingsrapporten worden verzonden.
BOOL SetPipeName(
LPCSTR szMachineName = ".",
LPCSTR szPipeName = "AtlsDbgPipe") throw();
Parameterwaarden
szMachineName
De naam van de computer waarnaar de foutopsporingsuitvoer moet worden verzonden.
szPipeName
De naam van de benoemde pijp waarnaar de uitvoer voor foutopsporing moet worden verzonden.
Retourwaarde
Retourneert TRUE bij succes, ONWAAR bij mislukt.
CDebugReportHook::SetTimeout
Roep deze methode aan om de tijd in milliseconden in te stellen waarop deze klasse wacht tot de benoemde pijp beschikbaar is.
void SetTimeout(DWORD dwTimeout);
Parameterwaarden
dwTimeout
De tijd in milliseconden dat deze klasse wacht tot de benoemde pijp beschikbaar is.