2010-07-25 139 views
24

我有一個C++程序(.cpp),其中我希望使用C頭文件中存在的一些函數,如stdio.h,conio.h,stdlib.h ,graphics.h,devices.h等。在C++程序中包含C頭文件

我可以在我的cpp文件中包含stdio.h庫,如下所示:#include <cstdio>。 如何包含其他庫文件?

如何添加graphics.h庫?

我正在使用Microsoft Visual Studio 6.0企業版和Turbo C++ 3.0。

+1

這看似吹毛求疵,或者我的語法錯誤很小,但這個錯誤常常表明對C鏈接的根本誤解。您不能包含庫文件。您可以包含頭文件。標題不是圖書館。圖書館不是標題。您可以包含graphics.h頭文件,然後您必須鏈接到頭中指定了API的庫。 – 2010-12-31 15:26:57

回答

43

有關C標準C頭文件(stdio,stdlib,assert,...)的列表,請添加一個c並刪除.h。 例如stdio.h變爲cstdio。

對於其他消息頭,使用

extern "C" 
{ 
    #include "other_header.h" 
} 
3

只要將它們包含在extern "C"塊中,它們應該像預期的那樣工作。

3

我不知道你需要的究竟是什麼,但如果你想使用老式的C函數裏面,你的C++程序,你可以很容易通過刪除包括他們。 h並添加一個「c」前綴。

例如,如果你想包括math.h使用

#include <cmath> 
1

可以使用原來的名稱#include他們。 #include <stdio.h>在C++中工作得很好。

+0

C標準頭文件需要在標準C++中工作,儘管您可能比您更喜歡使用全局名稱空間。非標準頭文件(如conio.h或graphics.h)可能無法正確設置,可能需要用'extern「C」{...}'封裝。檢查您的實施文檔。 – 2010-07-26 17:21:12

26
#ifdef __cplusplus 
extern "C" 
{ 
#endif 

// your functions here for the header 

#ifdef __cplusplus 
} 
#endif 

這種格式將幫助您使用C和C++的頭文件,沒有任何問題......

希望這有助於... :)