2

我只是尝试将 C++ 项目从 Windows XP 移动到 Windows 7(使其在 win7 中运行)。

编译是可以的,但是一旦到达以下代码,应用程序就会崩溃(代码是一段示例代码,但它有同样的问题)。

void Test(const BSTR& b)
{
     _variant_t t;
     t.vt = VT_BSTR;
     t.bstrVal = b;
}

int main()
{
    const BSTR b = L"Test"; 
    Test(b);
}

该代码在 Windows XP 中运行良好,但在 Windows 7 中发生堆损坏。

如果我将代码从

_variant_t t;
t.vt = VT_BSTR;
t.bstrVal = b;

_variant_t t(b);

然后它在 Windows 7 上运行良好。

我的问题,为什么第一段代码不能在 Windows 7 上运行?

4

0 回答 0