在64位应用程序中使用std :: string:“应用程序无法正确启动0xc00007b”

时间:2015-07-28 12:51:17

标签: c++ visual-studio-2012 64-bit 32bit-64bit stdstring

我有一个C ++ Visual Studio项目:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s1 = "This is a string";
    cout << "s1  is: " << s1 << endl;
    return 0;
}

当我将Configuration Manager中的项目平台更改为 x64 时,我收到运行时错误:

  

应用程序无法正确启动(0xc00007b)。

单击“确定”会显示消息:

  

MyConsoleApplication.exe中0x000007FB4FB72100(ntdll.dll)处的未处理异常:0xC000007B:%hs要么不是设计为在Windows上运行,要么包含错误。尝试使用原始安装介质再次安装程序,或与系统管理员或软件供应商联系以获取支持。错误状态0x。

这可能是某些x86 \ x64冲突,但我找不到有关在64位应用程序中使用std::string的任何参考。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

(将我的评论重新发布为答案)

这肯定与在{x}环境中使用std::string本身无关。 0xc00007bSTATUS_INVALID_IMAGE_FORMAT,因此可能是某些DLL或文件已损坏。

通过修复或重新安装Visual Studio可以轻松解决此问题。