[英]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.