The use method of afxDump and TRACE

 

#ifdef_DEBUG
afxDump<<"DumpingmyPerson:/n";
myPerson->Dump(afxDump);
afxDump<<"/n";
#endif

1TRACE();/TRACE0();/TRACE1();/TRACE2();/TRACE3();:其用法和C中的printf()函数类似;TRACEn()TRACE()的区别是前者使用的资源较少,前者中n表示所带参数的个数。使得TRACE可用:Tools-MFCTracer-Enablingtrace
2
AfxDump()//其用法和C++中的cout类似;
3
AfxDump(constCobject*obj);会输出obj的相关信息(属性的值)。
4
MessageBox();/AfxMessageBox();

#ifdef_DEBUG
afxDump<<x;
#endif
将结果显示在OutPut,不能在Release状态下。Ctrl+F5似乎无效,F5可以。

afxDump.SetDepth(1);
设置深度,maps,arrays,它只打出有几个可元素,我们用上面的这个函数,它会将所有的内容打出来
.
#ifdef_DEBUG
chartest[]="0123456789/n";
afxDump.HexDump("--",(BYTE*)test,11,6);
#endif
结果为
:
--303132333435
- -36373839 0A
第一个参数,行首的打头字符
.
第二个参数,要打的内容
.
第三个参数,要打的元素个数
.
第四个参数,每行的个数.

4,TRACE(...),TRACE0,TRACE1,TRACE2,TRACE3也只能在调试时用注意打字符串时有长度限制,包括结束符在内,不超过512个字符.

5.Debug状态下
F9
设置断点后,F5到下一个断点,F10下一行,F11进入函数(包括系统函数)内部,Shift+F11出来.
F5
,Debug菜单有相应的菜单项
.
F5
,View->DebugWindow的子菜单项比较有用
.
Watch
查看你指定的变量

variables
显示auot变量,local变量,this的值
memory
显示指定内存地址存储的值
callstack
显示函数调用关系
registers
寄存器的值
Disabblemble
汇编代码

其实Release下也可调试F5
Alt+f7
工程设置

c/c++GenerateBrowseinfo
选上.
Debuginfo
Progamedatabaseforeditandcontinue
LinkGeneratedebuginfo
选上

Linkincrementally
选上

给下面代码每一行给上注释并说明这段代码的意思#include "pch.h" #include "FinBudgetSupport.h" #include <map> time_t StringToDateTime(char* str) { tm tm_; int year, month, day, hour, min, sec; afxDump << str << "\n\n\n\n"; sscanf_s(str, "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &min, &sec); tm_.tm_year = year - 1900; tm_.tm_mon = month - 1; tm_.tm_mday = day; tm_.tm_hour = hour; tm_.tm_min = min; tm_.tm_sec = sec; tm_.tm_isdst = -1; time_t t_ = mktime(&tm_); return t_; } CString DateTimeToString(time_t _time) { tm *_tm = new tm(); gmtime_s(_tm ,&_time); CString t_str; t_str.Format(_T("%d-%d-%d %d:%d:%d"), _tm->tm_year+1900, 1+_tm->tm_mon, _tm->tm_mday, _tm->tm_hour , _tm->tm_min, _tm->tm_sec); delete _tm; return t_str; } CString _toCString(double _value) { CString t_str; t_str.Format(_T("%lf"), _value); return t_str; } CString _toCString(int _value) { CString t_str; t_str.Format(_T("%d"), _value); return t_str; } double _toDouble(CString _str) { return _ttof(_str); } char* CStringToCharArray(CString str) { int str_len = WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), NULL, 0, NULL, NULL);//计算字节数 char* CharArray = new char[str_len + 1]; WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), CharArray, str_len, NULL, NULL); CharArray[str_len] = '\0'; return CharArray; } void SplitString(const std::string& s, std::vector<std::string>& v, const std::string& c) { std::string::size_type pos1, pos2; pos2 = s.find(c); pos1 = 0; while (std::string::npos != pos2) { v.push_back(s.substr(pos1, pos2 - pos1)); pos1 = pos2 + c.size(); pos2 = s.find(c, pos1); } if (pos1 != s.length()) v.push_back(s.substr(pos1)); }
最新发布
06-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值