18,356
社区成员
发帖
与我相关
我的任务
分享
LPCSTR hex_table_a = "0123456789abcdef";
LPCTSTR hex_table_w = L"0123456789abcdef";
int WINAPI Byte2HexA(const BYTE *pData, int nDataSize, LPSTR pszBuffer, int nBufferSize)
{
if (pData == NULL) return -1;
int nNeedSize = nDataSize * 2;
if (pszBuffer == NULL || (nBufferSize - 1) < nNeedSize)
{
if (pszBuffer != NULL) pszBuffer[0] = '\0';
return nNeedSize;
}
int nResult = 0;
while (nDataSize--)
{
pszBuffer[nResult++] = hex_table_a[(*pData >> 4) & 0x0f];
pszBuffer[nResult++] = hex_table_a[*pData & 0x0f];
pData++;
}
pszBuffer[nResult] = '\0';
return 0;
}
int WINAPI Byte2HexW(const BYTE *pData, int nDataSize, LPTSTR pszBuffer, int nBufferSize)
{
if (pData == NULL) return -1;
int nNeedSize = nDataSize * 2;
if (pszBuffer == NULL || (nBufferSize - 1) < nNeedSize)
{
if (pszBuffer != NULL) pszBuffer[0] = '\0';
return nNeedSize;
}
int nResult = 0;
while (nDataSize--)
{
pszBuffer[nResult++] = hex_table_w[(*pData >> 4) & 0x0f];
pszBuffer[nResult++] = hex_table_w[*pData & 0x0f];
pData++;
}
pszBuffer[nResult] = '\0';
return 0;
}
这个应该类似你要的功能,你自己参考下吧