各位亲爱的朋友:
我们又在第11款VIP课程相会了,那么,这节课,我将与您分享VC++编程学会使用D与R版通用调试输出功能,方便排错。
编程思路:编程的话您只需要编写一次,了解到编写的效果,以后想要这种功能效果都是这么编写。对编写的代码越熟悉,就越容易延伸它与修改它。
具体编写技巧:
借箭源码:18.赞!VC++编程创建远程线程式调用CALL(3)。
#include "stdafx.h"
Unicode字符集版:
调试输出,支持Debug与Release
void DebugOutput(const char * strOutputString,...)
{
char strBuffer[4098]={0};
va_list vlArgs;
va_start(vlArgs,strOutputString);
_vsnprintf_s(strBuffer,sizeof(strBuffer)-1,strOutputString,vlArgs);
va_end(vlArgs);
USES_CONVERSION;
OutputDebugString(A2W(strBuffer));
}
多字节字符集 ASCII版:
void DebugOutput(const char * strOutputString,...)
{
char strBuffer[4098]={0};
va_list vlArgs;
va_start(vlArgs,strOutputString);
_vsnprintf_s(strBuffer,sizeof(strBuffer)-1,strOutputString,vlArgs);
va_end(vlArgs);
OutputDebugString(strBuffer);
}
void ClovegameDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
CString s1;
s1.Format(L"lisaisai1申请到的地址%x\n", 111);
OutputDebugString(s1);
TRACE("lisaisai2申请到的地址%x\n", 111);
DebugOutput_lisaisai("lisaisai3申请到的地址%x\n", 111);
}
郁金香版
void debugprintf(char*s1, ...)
{
#ifdef _DEBUG
char buf[1024];
char buf2[1028] = "lisaisai";
va_list list;
va_start(list, s1);
vsprintf_s(buf, s1, list);
strcat_s(buf2, buf);
OutputDebugStringA(buf2);
va_end(list);
#endif // DEBUG
}