6

我希望有人可以帮助我解决这个小问题,因为我一无所获。首先,代码如下:

#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”是未定义的

谢谢

4

2 回答 2

3

你的编译环境有问题。该代码没有任何问题。它编译并运行良好。

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

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

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

于 2012-05-05T18:56:33.440 回答
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

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

于 2012-05-05T19:47:07.767 回答