c++数据转换问题,_bstr_t类型转换成字符数组

用GetCollect从数据库里拿出的数据是_bstr_t类型的,现在有个字符数组ch1[20]里面保存数据,我需要将数据库拿出的_bstr_t数据和这个ch1[20]数... 用GetCollect从数据库里拿出的数据是_bstr_t类型的,现在有个字符数组ch1[20]里面保存数据,我需要将数据库拿出的_bstr_t数据和这个ch1[20]数据进行比较,用strcmp比较,所以我需要将_bstr_t强制转换放进另一个字符数组ch2[20]里,然后比较,请问怎么转换,望高手帮忙 展开
 我来答
帐号已注销
2012-07-02 · TA获得超过527个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:171万
展开全部
_bstr_t 重载了char*,所以可以使用
(char*)_bstr_t直接转换为字符指针。

_bstr_t ch2("abcde");
char ch1[20] = "abcde";

用如下语句就可以直接进行比较:
if ( strcmp( ch1, (char*)ch2 ) == 0 ) // 相等
tayort
2012-07-13 · TA获得超过137个赞
知道答主
回答量:176
采纳率:0%
帮助的人:104万
展开全部
_variant_t var ;
var = m_pRs->GetCollect(XXXXX);
CString str = var.bstr ;//_variant_t 可支持很多类型的转换
WideCharToMultiByte(CP_ACP,NULL,str,-1,ch1,20,NULL,FALSE);
收工
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
求知egg
2012-07-02 · TA获得超过115个赞
知道答主
回答量:221
采纳率:0%
帮助的人:176万
展开全部
char* p = _com_util::ConvertBSTRToString(_bstr_);
用这个转换出来就是 char*的 !!
更多追问追答
追问
我需要转换的是char数组,不是char字符串,我用你这个方法转换以后,赋值错误,提示
error C2440: '=' : cannot convert from 'char *' to 'char [20]'
追答
呵呵  你用了字符数组,那个是常量,你得用char* 转一下。
char* p ;
转过去简单啊 _bstr_ a(p);
它的构造就接受的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式