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