使用 ostringstream 导致程序崩溃

Using ostringstream causing program crash

我有一些旧的 C++ applications/services,我需要在 Windows 2003 上维护 运行(不是选择)。我已经准备好一切并使用 VS 2013,但现在我无法让任何 C++ 项目再次运行。他们只是崩溃。我将范围缩小到何时使用 stringstream,因此我编写了一个示例 Win32 exe 来进行测试。

这些是我在 VS 2013 Update 5 中更改的唯一设置: 设置为使用平台工具集 = Visual Studio 2013 - Windows XP (v120_xp)。特点 设置 = 使用多字节字符集。

int _tmain(int argc, _TCHAR* argv[])
{
    ostringstream zs;
    zs << "Hello";
    string strTemp = zs.str();
    printf("%s\n", zs.str().c_str());

    return 0;
}

它在 zs << "Hello";

上崩溃

在 Visual Studio 2013 及更高版本中,用于多字节字符编码 (MBCS) 的 MFC 库作为 Visual Studio 的单独附加组件提供,可从 MSDN 下载站点下载.

https://msdn.microsoft.com/en-us/library/5z097dxa.aspx