描述:
各位大师,我在做一个COM的小程序,我需要把一个普通的字符串转换成BSTR,
从昨天早上到现在,我头都痛了(真的是痛了),但还是找不到解决办法。
微软的很多文档上面都有这样的东西:
----------------------------------------------------------------------------
BSTR bstrTemp;
bstrTemp = ::SysAllocString(OLESTR("Bob"));
----------------------------------------------------------------------------
但是就是没有这样的:
----------------------------------------------------------------------------
BSTR bstrTemp;
char buff[100];
// 做一些事情来得到buff的具体值
bstrTemp = /* 如何将buff里的东西塞进bstrTemp? */
----------------------------------------------------------------------------
大师,请指点一下迷津,如何将第二小段代码里面的buff转换
成BSTR类型的东西?
解决方案1:
楼上正解,若是VC可以先转换成CString再allocsysstring()
解决方案2: 写COM没有ATL怎么行?先装一个vs2003或者vs2005。ATL的CString类是最方便实用的String类,用这个转很方便。
#include <atlstr.h>
bstrTemp = CString(buff).AllocSysString();
bstrTemp = _com_util::ConvertStringToBSTR(buff)