【发布时间】:2015-08-18 17:50:52
【问题描述】:
我有一些需要维护的旧 C++ 应用程序/服务在 Windows 2003 上运行(不是选择)。我已经完成了一切准备工作并使用 VS 2013,但现在我无法让任何 C++ 项目再次工作。他们只是崩溃。我将范围缩小到使用 stringstream 时,所以我编写了一个示例 Win32 exe 进行测试。
这些是我在 VS 2013 Update 5 中更改的唯一设置: 设置为使用平台工具集 = Visual Studio 2013 - Windows XP (v120_xp)。特点 Set = 使用多字节字符集。
int _tmain(int argc, _TCHAR* argv[])
{
ostringstream zs;
zs << "Hello";
string strTemp = zs.str();
printf("%s\n", zs.str().c_str());
return 0;
}
它在 zs 上崩溃
【问题讨论】:
-
请详细说明只是崩溃!您可能缺少一些 DLL 或绑定到错误的 DLL。
-
redist DLL 在那里。我从 2010 年到 2013 年的每个版本都有它们(msxxx100.dll、110.dll 和 120.dll)。当您缺少相应的 redist dll 时,问题不会崩溃。操作系统显示缺少所需 DLL 的消息。当我尝试附加到 zs 时发生崩溃。在这个例子中,它在 zs
-
什么是异常/编译器错误信息?通常程序不会“只是崩溃”。
-
ILLEGAL_INSTRUCTION (0xc000001d) 地址为 0x00416ab9。我可以注释掉 zs
-
你试过
zs << L"Hello";了吗?可能是多字节字符识别的问题。
标签: c++ visual-studio-2013 crash