常用函数库——调试函数

采用消息对话框以16进制的形式输出一段连续内存中的数据

应用环境:C++ MFC工程

 

void HexDump(char *buf, DWORD len, DWORD addr)
{
	DWORD i,j,k;
	CString strPrint;
	for(i = 0; i < len, i++)
	{
		if(0 == i%16)
		{
			strPrint.Format("%08x -", i+addr);
			strPrint.Format("%s  %02x", strPrint,(unsigned char)buf[i]);
		}
		else if(15 == i%16)
		{
			strPrint.Format("%s %02x  ", strPrint, (unsigned char)buf[i]);
			for(j = i - 15; j <= i; j++)
			{
				strPrint.Format("%s%c", strPrint, buf[j]);
			}
			strPrint += "\n";
		}
		else
		{
			strPrint.Format("%s %02x", strPrint, (unsigned char)buf[i]);
		}
	}
	
	if(0 != i%16)
	{
		k = 16 - i%16;
		for(j = 0; j < k; j++)
		{
			strPrint += "   ";
		}
		strPrint += "  ";	
		k = 16 - k;
		for(j = i - k; j < i; j++)
		{
			strPrint.Format("%s%c", strPrint, buf[j]);
		}
		strPrint += "\n";
	}
	AfxMessageBox(strPrint);
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值