16,472
社区成员
发帖
与我相关
我的任务
分享
#define MAX_BUF_SIZE (8192)
#define MAX_BIN_COUNT (16)
#define MAX_BIN_SIZE (64)
#define __STR2WSTR(str) L##str
#define _STR2WSTR(str) __STR2WSTR(str)
#ifdef UNICODE
#define _FILE_ _STR2WSTR(__FILE__)
#define _FUNCTION_ _STR2WSTR(__FUNCTION__)
#else
#define _FILE_ __FILE__
#define _FUNCTION_ __FUNCTION__
#endif
#define PARSE_ARGS(lpszFmt, szText, nLength) \
va_list args; \
va_start(args, lpszFmt); \
StringCchVPrintf(szText, nLength, lpszFmt, args); \
va_end(args);
#ifdef _DEBUG
#define DUMPPRINT(lpszFmt, ...) \
TCHAR szText[MAX_BUF_SIZE] = {0}; \
StringCchPrintf(szText, _COUNTOF_(szText), lpszFmt, __VA_ARGS__); \
OutputDebugString(szText);
#define DUMPFAILED(dwError) \
LPTSTR lpszBuf = NULL; \
TCHAR szError[MAX_BUF_SIZE] = {0}; \
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwError, LANG_NEUTRAL, (LPTSTR)&lpszBuf, 0, NULL); \
StringCchPrintf(szError, _COUNTOF_(szError), _T("\nError: File: %s \n\tLine: %d Function: %s()\n\tReason: %s\n"), _FILE_, __LINE__, _FUNCTION_, lpszBuf); \
OutputDebugString(szError); \
LocalFree(lpszBuf);
#define DUMPBIN(pData, dwSize) \
TCHAR szData[MAX_BIN_SIZE] = {0}; \
OutputDebugString(_T("\n-----------00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F")); \
for(DWORD i = 0; i < dwSize; i++) \
{ \
if(0 == (i % MAX_BIN_COUNT)) \
{ \
OutputDebugString(szData); \
StringCchPrintf(szData, _COUNTOF_(szData), _T("\n%08Xh: %02X"), i, pData[i]); \
} \
else \
{ \
StringCchPrintf(szData + _tcslen(szData), _COUNTOF_(szData) - _tcslen(szData), _T(" %02X"), pData[i]); \
} \
} \
OutputDebugString(szData); \
OutputDebugString(_T("\n----------------------------------------------------------\n"));
#else
#define DUMPPRINT(lpszFmt, ...)
#define DUMPFAILED(dwError)
#define DUMPBIN(pData, dwSize)
#endif
// ConsoleApplication6.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <Windows.h>
#include <stdio.h>
#include <string>
#include <stdlib.h>
#define __GET_FL__ get_fl()
#define STD_LOG(args, ...) printf("文件名字[%s],程序行数[%d],日志内容["args"]\n", __FILE__, __LINE__, __VA_ARGS__)
char * get_fl()
{
char str1[255] = { 0 };
sprintf(str1,"%s %d %s",__FILE__, __LINE__, __FUNCTION__);
return str1;
}
int main()
{
int a = 10;
char *b = "程序员";
double c = 5.44;
STD_LOG("测试程序[%d],[%s],[%lf]", a, b, c);
printf("%s\n", __GET_FL__);
system("pause");
return 0;
}