簡體   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