描述:
同上
解决方案1:
BSTR 是一个数据类型,就象 int , char 之类的,
_bstr_t 是MS定义的一个类。
使用BSTR参数的地方都可以使用_bstr_t,而BSTR类型字符串可以直接转化成_bstr_t类型
并且_bstr_t类型也可以直接转化成char*类型
_bstr_t封装BSTR还是非常好的
_bstr_t x(BSTR);
x = _bstr_t(BSTR);
BSTR = _bstr_t(L"xxxxx").copy();
typedef /* [wire_marshal] */ OLECHAR __RPC_FAR *BSTR;
typedef WCHAR OLECHAR;
#ifndef _MAC
typedef wchar_t WCHAR; // wc, 16-bit UNICODE character
#else
// some Macintosh compilers don't define wchar_t in a convenient location, or define it as a char
typedef unsigned short WCHAR; // wc, 16-bit UNICODE character
#endif
typedef unsigned short wchar_t;
所以这样转换就行了:
BSTR pstr;
_bstr_t bstr;
pstr=(char*)(bstr);
pstr
BSTR pstr;
pstr=(char*)(bstr);
这样做会死得很难看的。
_bstr_t和BSTR的关系就和CString 和char *德关系差不多