einschließlich der c-header in der c++ Datei
Ich versuche, einen "c" - header-Datei in einer cpp-Datei.
Die c-header-Datei hat das Schlüsselwort "Boolean".
c-header wie folgt aussieht:
#ifndef _CONFIGSTORE_H_
#define _CONFIGSTORE_H_
#ifdef __cplusplus
extern "C"
{
#endif
Boolean ConfigStoreIsPassword(char *pName);
#ifdef __cplusplus
}
#endif
#endif //_CONFIGSTORE_H_
Unten ist, so wie ich bin, einschließlich der c-header in meiner cpp-Datei:
extern "C"{
#include "configstore.h"
}
oder
#ifdef __cplusplus
extern "C"
{
#endif
#include "configstore.h"
#ifdef __cplusplus
}
#endif
Jede Weise, die ich include, bekomme ich die folgende Fehlermeldung:
../../../../src/Common/framework/configstore.h:52: Fehler: 'bool', nicht Namen eine Art
Könnten Sie bitte lassen Sie mich wissen, wie ich hinzufügen kann, die c-header in der cpp-Datei
Vielen Dank im Voraus!!
-Vasavi
- Hat nichts mit C oder C++. Sie müssen nur definieren Sie den Typ (oder die Datei, die die definition).
Boolean
ist nicht eine Art, die in C oder C++. Haben Sie einetypedef
oder makro irgendwo, weil das wäre unbrauchbar in C.- Der include funktioniert, gibt es ein problem mit Ihrem
Boolean
geben. - setzen
extern "C"
vor darunter wird nicht benötigt, die header sollen die Arbeit machen, nicht der Benutzer-code (c/cpp-Datei).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Dinge in den Sinn, hier. Ein, Sie Schachteln ein
extern "C"
block innerhalb eines anderenextern "C"
block. Entfernen Sie die äußeren Blöcke.Zwei
Boolean
ist kein Schlüsselwort in c++.bool
ist. Versuchen Sietypedef bool Boolean;
bevor Ihr Kopf die Aufnahme.Boolean
ist nicht ein standard-Datentyp für entweder denC
oderC++
.Müssen Sie die header, wo
Boolean
deklariert ist, und schließen Sie ihn, bevor Sie Ihre Datei.Müssen Sie, um eine definition der
Boolean
geben, dass der C++ - compiler verstehen können.Den
extern "C"
Zeug nur wirkt, wie symbol, name Mangling, es nicht wie von Zauberhand machen die C++ - compiler verstehen C-spezifischen Datentypen.Nicht, dass
Boolean
ist gültiges C, eh. Es gibt wohl noch ein header fehlt von Ihr gehört.Brauchen Sie nicht und sollten Sie nicht verwenden
extern "C"
rund um die#include
- Anweisung. Der header bereits hat dieses Recht.configstore.h
braucht, um die definition vonBoolean
. Wie andere erwähnt haben, könnte man hinzufügen, die definition vonBoolean
zu der Quell-Datei (oder die definition) vor, einschließlichconfigstore.h
, aber das ist eine schlechte Idee, wie es erstellt include-Reihenfolge der Abhängigkeiten zwischen den unabhängigen Modulen.