MFC调试程序OutputDebugString改写
说明
本人原先是使用Qt做C++开发的,但是由于最近相关的工作比较难找,所以找的工作是做MFC的相关开发的,但是MFC中的一些调试程序实在是难用,所以按照Qt对应的程序做了一定的修改操作,参照的程序为Qt的QDebug,使用输出符号进行数据的输出。
源码
#pragma once
#include <string>
#include <cstring>
constexpr auto Cendl = "\r\n";
using namespace std;
class CDebug
{
public:CDebug();
CDebug & operator<<(const string &str);
CDebug & operator<<(const CString &str);
CDebug & operator<<(const int &number);
CDebug & operator<<(const unsigned int &number);
CDebug & operator<<(const long &number);
CDebug & operator<<(const long long &number);
CDebug & operator<<(const float &number);
CDebug & operator<<(const double &number);
CDebug & operator<<(const long double &number);
CDebug & operator<<(const char &number);
};
#include "pch.h"
#include "CDebug.h"
CDebug::CDebug()
{
}
CDebug & CDebug::operator<<(const string & str)
{
OutputDebugString(CString(str.c_str()));
return *this;
}
CDebug & CDebug::operator<<(const CString & str)
{
OutputDebugString(str);
return *this;
}
CDebug & CDebug::operator<<(const int & number)
{
CString str;
str.Format(_T("%d"), number);
OutputDebugString(str);
return *this;
}
CDebug & CDebug::operator<<(const unsigned int & number)
{
CString str;
str.Format(_T("%u"), number);
OutputDebugString(str);
return *this;
}
CDebug & CDebug::operator<<(const long & number)
{
CString str;
str.Format(_T("%ld"), number);
OutputDebugString(str);
return *this;
}
CDebug & CDebug::operator<<(const long long & number)
{
CString str;
str.Format(_T("%lld"), number);
OutputDebugString(str);
return *this;
}
CDebug & CDebug::operator<<(const float & number)
{
CString str;
str.Format(_T("%f"), number);
OutputDebugString(str);
return *this;
}
CDebug & operator<<(CDebug & debug, const double & number)
{
CString str;
str.Format(_T("%lf"), number);
OutputDebugString(str);
return debug;
}
CDebug & CDebug::operator<<(const long double & number)
{
CString str;
str.Format(_T("%lf"), number);
OutputDebugString(str);
return *this;
}
CDebug & CDebug::operator<<( const char & number)
{
CString str;
str.Format(_T("%c"), number);
OutputDebugString(str);
return *this;
}
修改说明
该部分程序仅实现类似于QDebug的功能,目前只支持一些常用的数据格式实现数据输入和输出,一些自定义格式还需要自行添加友元函数或者重写。
|