使用ostringstream导致程序崩溃

Using ostringstream causing program crash

本文关键字:程序 崩溃 ostringstream 使用      更新时间:2023-10-16

我有一些旧的c++应用程序/服务,我需要维护它们在Windows 2003上运行(不是由选择)。我已经把所有的东西都设置好了,并在VS 2013上工作,但现在我不能让任何c++项目再次工作。他们只是崩溃了。我把它缩小到使用stringstream的时候,所以我写了一个示例Win32 exe来测试。

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

int _tmain(int argc, _TCHAR* argv[])
{
    ostringstream zs;
    zs << "Hello";
    string strTemp = zs.str();
    printf("%sn", zs.str().c_str());
    return 0;
}

它在zs上崩溃<<"你好",

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

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