【发布时间】:2012-05-14 22:45:20
【问题描述】:
我希望有人可以帮助我解决这个小问题,因为我一无所获。首先,代码如下:
#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;
}
它不会让我使用标准的东西(即 cout、cin、endl 等)。只有当我取出所有外部“C”代码时,它才允许我使用它……这是为什么呢?有没有办法解决这个问题?
编辑:对不起,忘记告诉你确切的错误:它说标识符“cout”是未定义的
谢谢
【问题讨论】:
-
无论如何我都不会在全球范围内使用 std 。您可以移动 using namespace std;在主里面。
-
extern "C"在这里的作用是什么? -
因为 cout 不是 C 关键字,而是 C++ 单例实例。您不能从纯 C 代码访问 C++ 对象(尽管反过来也可以)。
-
@DavidHeffernan 我正在学习编写驱动程序,以便可以使用键盘和鼠标等设备进行操作,因此我正在使用 WDK。如果我错了,请纠正我,但我认为您需要使用 extern "C" 来使用那些头文件?
-
驱动程序是用 C 而不是 C++ 编写的。