概述
在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功能所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复