debra 发表于 2021-8-30 16:02:52

BYTE*数组与BSTR类型相互转换方法


下面是网友提供的方案:

方案1:
_bstr_t str = (char*)byteArray;
BSTR bstr = str.GetBSTR();

方案2:
CComVariant var = (char*)byteArray;
BSTR bstr = var.bstrVal;

方案3:
USES_CONVERSION;
BSTR bstr = A2BSTR((char*)byteArray);

我放入我的工程中发现会出现字符串截断问题。
如果是byte数组里放的是普通的字符串,网友的方案应该没问题。
但是巧合我的这个byte数组里有空字符,这样就带来了我要写这个主题的动力。

我的方案是:
BSTR bstr = SysAllocStringLen(NULL, dwSize/2);
memcpy(bstr, pData, dwSize);

反之,BSTR类型转换成byte数组的方式是
LPBYTE lp = new BYTE;
memcpy(lp, bios, size);

页: [1]
查看完整版本: BYTE*数组与BSTR类型相互转换方法