繁体   English   中英

外部“ C”时不能使用cout / endl

[英]Can't use cout/endl when extern “C”

我希望有人能在这个小问题上为我提供帮助,因为我什么都没有。 首先,下面是代码:

#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;
}

它不会让我使用std的东西(例如cout,cin,endl等)。 仅当我取出所有外部“ C”代码时,它才允许使用它……为什么? 有没有解决的办法?

编辑:对不起,忘记告诉您确切的错误:它说标识符“ cout”未定义

谢谢

您的编译环境有问题。 该代码没有错。 它可以编译并运行良好。

在对问题的评论中,您说:

我正在学习编写驱动程序,以便可以对键盘和鼠标等设备进行处理,因此我正在使用WDK。 如果我错了,请纠正我,但是我认为您需要使用extern“ C”来使用那些头文件?

实际上,您应该只用C而不是C ++编写代码来进行驱动程序开发。

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

顺序应为:

C:\WinDDK\7600.16385.1\inc\ddk
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
C:\WinDDK\7600.16385.1\inc\api
$(WindowsSdkDir)include
$(FrameworkSDKDir)\include

不知道为什么需要按此顺序运行,但是现在可以正常工作了……很奇怪……

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM