最近在做Activex控件时候,需要将容器传递的BSTR转化为CString,百度之,问题来了,首先有人提出使用一个函数,函数体为:
void inline BR_TO_CSTRING(BSTR bst,CString& cst)
{
DWORD len=*((DWORD*)bst-1);
for(UINT i=0;i <len;i+=2)
cst+=*(char*)((BYTE*)bst+i);
}
然后又有人说使用CString的构造函数直接可以将BSTR类型转化为CString
警惕:以上两种方法会讲BSTR中的“:”过滤掉,郁闷,当时我崩溃了,正确方法为CString str= (LPCSTR)URI;可以正确将冒号传递,原因正在查找中。。。