extern"C"时无法使用cout/endl

Dan*_*nny 6 c++ extern

我希望有人可以帮我解决这个小问题,因为我根本就没有.首先,继承代码:

#include<string>
#include<iostream>
#include<Windows.h>

using namespace std;

extern "C"
{
#include<hidsdi.h>
#include<SetupAPI.h>
}

int main()
{
    int iQuit;

    cout << "Testing Program" << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它不会让我使用std的东西(即cout,cin,endl等).当我取出所有外部"C"代码时,它只允许我使用它......为什么会这样?有没有办法解决这个问题?

编辑:对不起,忘了告诉你确切的错误:它说标识符"cout"未定义

谢谢

Dan*_*nny 1

我发现了问题,我没有在 VC++ 目录中以正确的顺序添加目录。

顺序应该是:

C:\WinDDK\7600.16385.1\inc\ddk
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
C:\WinDDK\7600.16385.1\inc\api
$(WindowsSdkDir)include
$(FrameworkSDKDir)\include
Run Code Online (Sandbox Code Playgroud)

不知道为什么需要按这个顺序,但现在可以了......很奇怪......

  • 是的。当您的 C++ 代码引发异常时您会做什么?这对司机来说可不是什么好事。还有其他问题。网络搜索引导我进行了此讨论:http://msdn.microsoft.com/en-us/windows/hardware/gg487420 (2认同)