ich einen anderen Weg ging - ich die Ausgabe wie folgt aus (die Nachricht nur bearbeiten gewählt wird kürzer , so benötigt keine Zuordnung):
#ifdef _DEBUG
static int __cdecl crtReportHookW(int nReportType, wchar_t* wszMsg, int* pnRet)
{
const wchar_t wszTrace[] = L"atlTraceGeneral - ";
const int ccTrace = _countof(wszTrace) - 1; // exclude L'\0'
if (nReportType == _CRT_WARN)
{
wchar_t* pwsz = wcsstr(wszMsg, wszTrace);
if (pwsz != nullptr)
{
int ccBuf = wcslen(pwsz) + 1; // remaining buffer size (include L'\0')
wmemmove_s(pwsz, ccBuf, &pwsz[ccTrace], ccBuf - ccTrace);
}
}
return FALSE; // always keep processing
}
#endif
Und in der CWinApp abgeleiteten Konstruktor:
#ifdef _DEBUG
_CrtSetReportHookW2(_CRT_RPTHOOK_INSTALL, crtReportHookW);
#endif
und CWinApp abgeleiteten destructor:
#ifdef _DEBUG
_CrtSetReportHookW2(_CRT_RPTHOOK_REMOVE, crtReportHookW);
#endif
Aus irgendeinem Grund sind sowohl die MCBS und Breitzeichen Versionen des Hakens mit der gleichen Botschaft genannt werden, so dass nur die Breitzeichen Haken Notwendig auch in einer MBCS App.
Angeblich soll, können Sie ATL/MFC Trace-Tool verwenden "Kategorie und fucntion Name" Tracing zu deaktivieren. Wenn dies interaktiv funktioniert, können Sie auch die gleiche programmatisch in Ihrem Code tun - Ausgangszustand auf Ihrer Anwendung zu aktualisieren. –
Ich konnte nicht gefunden ATL/MFC Trace-Tool in der aktuellen Proben. –
VS 2012 hat es in 'C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ Tools AtlTraceTool8.exe' Vermutlich \, VS 2013 es auch dort hat. Es kann auch von der IDE über das Menü Tools gestartet werden. –