#include <comdef.h>
#ifdef _DEBUG
void _TRACE( LPCTSTR szInfo, _variant_t Val)
{
try
{
WCHAR szBuff[1024];
memset(szBuff, 0, sizeof(szBuff));
if(szInfo)
{
_variant_t vs( szInfo );
vs.ChangeType( VT_BSTR );
wcscat(szBuff, vs.bstrVal);
if(wcslen(szBuff) > 0)
wcscat(szBuff, L"=> " );
}
Val.ChangeType(VT_BSTR);
wcscat(szBuff, Val.bstrVal);
if(wcslen(szBuff) > 0)
wcscat(szBuff, L"/r/n" );
OutputDebugStringW(szBuff);
}
catch (_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
}
}
#define __TRACE(Val) /
{ /
TCHAR szInfo[1024];/
memset( szInfo, 0 , sizeof(szInfo));/
wsprintf( szInfo, _T("%s(%d): %s"),__FILE__, __LINE__, #Val);/
_TRACE( szInfo, Val);/
}
#else
#ifdef __noop
#define _TRACE(x,y) __noop
#define __TRACE(Val) __noop
#else
#define _TRACE(x,y) //
#define __TRACE(Val) //
#endif
#endif
//简单的测试代码
double Val = 8.54;
_TRACE( _T("Test"), Val);
_TRACE( _T("String"), _T("ABCD"));
__TRACE( Val );
输出
Test=> 8.54
String=> ABCD
C:/TEMP/ff/ff.cpp(106): Val=> 8.54