【发布时间】:2016-11-02 12:11:54
【问题描述】:
我有一个类似的代码-
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? 谁能帮我找出应用程序崩溃的原因?
【问题讨论】:
-
BSTR只是wchar_t*的类型定义。是的,当然您可以将指针分配给变量。您的问题出在其他地方 - 很可能是堆损坏(某处,可能在一段完全不相关的代码中;堆损坏在这种情况下令人讨厌)。