2010-07-25 8 views
24

Ich habe ein C++ - Programm (.cpp) in dem ich einige der Funktionen verwenden möchte, die in den C-Header-Dateien wie stdio.h, conio.h, stdlib.h vorhanden sind , graphics.h, devices.h usw.Einschließlich C-Header in einem C++ - Programm

Ich könnte die stdio.h-Bibliothek in meine cpp-Datei einschließen: #include <cstdio>. Wie schließe ich die anderen Bibliotheksdateien ein?

Wie füge ich die graphics.h Bibliothek hinzu?

Ich verwende Microsoft Visual Studio 6.0 Enterprise Edition und auch Turbo C++ 3.0.

+1

Das ist wie Erbsenzählerei zu sein scheint, oder es Ich bin ein kleiner Grammatikfehler, aber dieser Fehler deutet oft auf ein grundlegendes Missverständnis der C-Verknüpfung hin. Sie können keine Bibliotheksdatei einschließen. Sie können die Header-Datei einschließen. Der Header ist nicht die Bibliothek. Die Bibliothek ist nicht die Überschrift. Sie können den Header "graphics.h" einfügen und anschließend eine Verknüpfung mit der Bibliothek herstellen, deren API in der Kopfzeile angegeben ist. –

Antwort

43

Für eine Liste von C-Standard-C-Headern (stdio, stdlib, assert, ...), eine a voranstellen und die .h. Zum Beispiel wird stdio.h zu cstdio.

Für andere Header verwenden

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

Fügen Sie sie einfach in einen extern "C" Block ein und sie sollten wie erwartet funktionieren.

3

Ich bin nicht sicher, was Sie brauchen genau, aber wenn Sie altmodisches C-Funktionen in Ihnen C++ Programm verwenden möchten, können Sie sie einfach sind die durch das Entfernen. h und addiere ein "c" Präfix.

zum Beispiel, wenn Sie wollen math.h Verwendung

#include <cmath> 
1

Sie einschließen können sie #include ihren ursprünglichen Namen. #include <stdio.h> funktioniert gut in C++.

+0

Die Standard-C-Header werden benötigt, um in Standard-C++ zu arbeiten, obwohl Sie möglicherweise mehr als Sie möchten in den globalen Namespace einfügen. Nicht standardmäßige Header, wie conio.h oder graphics.h, sind möglicherweise nicht richtig eingerichtet und müssen möglicherweise in 'extern" C "{...}' eingeschlossen werden. Überprüfen Sie Ihre Implementierungsdokumentation. –

26
#ifdef __cplusplus 
extern "C" 
{ 
#endif 

// your functions here for the header 

#ifdef __cplusplus 
} 
#endif 

Dieses Format sollten Sie für beide C und C++ die Header-Dateien ohne Probleme verwenden helfen ...

this helps ... :)