社区
ATL
帖子详情
_bstr_t的使用问题
kivenanlice
2011-12-02 09:35:58
在一个函数中定义两个局部的_bstr_t变量
_bstr_t strA = "A";
_bstr_t strB = "B";
调用一个COM接口将这两个变量当做参数传入
m_pComObj->Fun(strA,strB);
问题:
程序启动第一次调用这个函数时,变量strA,strB的值是正确的,分别为"A","B"。但这后再调用这个函数时这两个变量的值都为"B"。
请高手指点迷津。
...全文
102
6
打赏
收藏
_bstr_t的使用问题
在一个函数中定义两个局部的_bstr_t变量 _bstr_t strA = "A"; _bstr_t strB = "B"; 调用一个COM接口将这两个变量当做参数传入 m_pComObj->Fun(strA,strB); 问题: 程序启动第一次调用这个函数时,变量strA,strB的值是正确的,分别为"A","B"。但这后再调用这个函数时这两个变量的值都为"B"。 请高手指点迷津。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kivenanlice
2011-12-02
打赏
举报
回复
问题找到了。
COM接口中返回variant类型,返回值设置的不对
result->vt = VT_BSTR;
result->bstrVal = (_bstr_t)(-14); //出错
result->bstrVal = (_bstr_t)_T(""); //正确
感谢各位参与解答。
fishion
2011-12-02
打赏
举报
回复
不用_bstr_t,用BSTR看看吧
kivenanlice
2011-12-02
打赏
举报
回复
[Quote=引用 3 楼 oyljerry 的回复:]
调试一下,监控一下这个变量
[/Quote]
调试情况是这两个变更内部指针指向同一个地址。
奇怪的是定义的是两个局部变量,每次调用函数都会重新定义的,但只要调用过一次COM接口函数后就会出现问题。
oyljerry
2011-12-02
打赏
举报
回复
调试一下,监控一下这个变量
kivenanlice
2011-12-02
打赏
举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]
Fun内部改变了A的值?
[/Quote]
Fun函数不改变A的值。
ouyh12345
2011-12-02
打赏
举报
回复
Fun内部改变了A的值?
_
bstr
_t和_variant_t
_
bstr
_t和_variant_t,主要介绍_
bstr
_t和_variant_t两种数据类型的简单作用。
_
bstr
_t类型
1._
bstr
_t是个对
bstr
的类,具体定义可以看comutil.h...ado是个com组件所以传的也是
bstr
,
使用
_
bstr
_t不但方便接收,而且方便处理。 2.严格地说_
bstr
_t不属于对
bstr
的类,它可以直接转换成
bstr
型,也可以直接转换成普通
_
bstr
_t与CString相互转换
_
bstr
_t与CString相互转换 _
bstr
_t
bstr
; CString strSql; CString -> _
bstr
_t:
bstr
= (_
bstr
_t)strSql; _
bstr
_t -> CString: strSql = (LPCSTR)
bstr
;
BSTR
宽字符串与CString相互转换 ...
_
bstr
_t
使用
陷阱
_
bstr
_t
使用
陷阱在
使用
的时候我们可以定义一个变量_
bstr
_t strTest; 然后会这样赋值(或者
使用
宽字符的形式):strTest = ""; strTest = "test";然后我们有另外的字符串类,比如stl中wstring,我们定义一个变量...
_
bstr
_t与
BSTR
问题
:
BSTR
a = _
bstr
_t("a");
BSTR
b = _
bstr
_t("b"); CString c ; c = a; MessageBox(c); c = b; MessageBox(c); 为什么消息框中显示的都是 b? 如果这样: _
bstr
_t...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章