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