我只是尝试将 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 上运行?