我是靠谱客的博主 重要果汁,最近开发中收集的这篇文章主要介绍在Release版本中输出打印信息,实现TRACE功能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Release版本中不支持TRACE打印信息。所以在Release中需要自己实现TRACE,由于在VC6.0中不支持宏传递可变参数,所以编写函数实现TRACE;

1. 在stdafx.cpp中编写函数实现TRACE功能;

CStdioFile gDbFile;

void __cdecl db_print(const char *lpszFormat,...)
{
#ifdef REL_PRINT
#ifdef NDEBUG
int nBuf;
char szBuffer[512];
memset(szBuffer,0,512); 
va_list args;
va_start(args,lpszFormat);

nBuf = _vsnprintf(szBuffer, sizeof(szBuffer), lpszFormat, args);

gDbFile.WriteString(szBuffer);
va_end(args);
#endif
#endif
}

这个函数就是把打印信息写到文件中;

2. 在stdafx.h中声明一下:

extern CStdioFile gDbFile;


#define REL_PRINT
void __cdecl db_print(const char *lpszFormat,...);


#ifdef NDEBUG
#define TRACE db_print
#endif


3. 在应用程序类中的InitInstance()中创建这个文件;

gDbFile.Open("C:\XXX_Debug.txt",CFile::modeCreate|CFile::modeReadWrite|CFile::shareDenyNone);

在ExitInstance() 中关闭文件:

gDbFile.Close();

通过以上操作,在release中TRACE可以打印信息到文件中。

通过是否定义 REL_PRINT来关闭release中的打印功能。

最后

以上就是重要果汁为你收集整理的在Release版本中输出打印信息,实现TRACE功能的全部内容,希望文章能够帮你解决在Release版本中输出打印信息,实现TRACE功能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部