在C ++中将BSTR六进制十进制字符串转换为BYTE *

时间:2015-05-18 14:23:12

标签: c++ hex converter

我试图将BSTR字符串转换为Hex BYTE *

我收到COM作为BSTR的回复

我的RAW方法在tlh

 virtual HRESULT __stdcall test(
        /*[in]*/ BSTR domain,
        /*[in]*/ BSTR snap,
        /*[out,retval]*/ BSTR * pRetVal ) = 0;
  

BSTR aa = L“559EB7F000260044F06BB01A3A000055”;

我想将其转换为BYTE myHex [16]

  

示例回复   {0x55,0x97,0xD6,0x00,0x02,0x60,0x01,0x44,0xF0,0x6B,0xB0,0x1A,0x3A,0x00,0x00,0x55};

1 个答案:

答案 0 :(得分:1)

一种方法是使用swscanf。你也可以通过字符串流来完成。

#include <cstdio>

...

for (int i = 0; i < 16; ++i)
{
    if ( 1 != std::swscanf(aa + 2 * i, L"%02X", myHex + i) )
         throw std::runtime_error("Conversion failure");
}