首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用赋值运算符将BSTR初始化为另一个BSTR

使用赋值运算符将BSTR初始化为另一个BSTR
EN

Stack Overflow用户
提问于 2016-06-30 19:56:45
回答 2查看 159关注 0票数 0

我有一个代码,就像-

代码语言:javascript
复制
void CSomeClass::Remove()
{
  BSTR tempStr = NULL;

  while(!m_list.IsEmpty()) //m_list is a CSomeClass member of type CList<BSTR, BSTR>
  {
    tempStr = m_list.RemoveHead(); //application crash here!!

    if(NULL==tempStr)
       continue;
  }

  SysFreeString(tempStr);

}

我不确定为什么应用程序会崩溃。是否可以使用赋值运算符将BSTR初始化为另一个BSTR?有人能帮我找出应用程序崩溃的原因吗?

EN

回答 2

Stack Overflow用户

发布于 2018-02-22 17:38:43

是。可以将BSTR赋给另一个BSTR变量。BSTR实际上是实际数据的起始地址。

这里的问题是RemoveHead()函数,而不是赋值。请查看完整的堆栈跟踪或仅将调试器附加到您的程序以进一步调试此问题。

票数 0
EN

Stack Overflow用户

发布于 2016-07-01 04:53:16

将SysFreeString放入循环中

代码语言:javascript
复制
void CSomeClass::Remove()
{
  BSTR tempStr = NULL;

  while(!m_list.IsEmpty()) //m_list is a CSomeClass member of type CList<BSTR, BSTR>
  {
    tempStr = m_list.RemoveHead(); //application crash here!!

    if(NULL==tempStr)
       continue;
    SysFreeString(tempStr);
  }


}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38122413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档