- 注册时间
- 2021-4-16
- 最后登录
- 2023-11-9
- 在线时间
- 4 小时
编程入门
- 龙马币
- 108
|
下面是网友提供的方案:
方案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[size];
- memcpy(lp, bios, size);
复制代码
|
|