2012-01-05 8 views
1

"c"ヘッダーファイルをcppファイルに含めようとしています。 cヘッダーファイルにキーワード "Boolean"があります。cヘッダーファイルをC++ファイルに含める

extern "C"{ 
#include "configstore.h" 
} 

または

#ifdef __cplusplus 
extern "C" 
{ 
#endif 

#include "configstore.h" 

#ifdef __cplusplus 
} 
#endif 

いずれかの方法:以下

#ifndef _CONFIGSTORE_H_ 
#define _CONFIGSTORE_H_ 

#ifdef __cplusplus 
extern "C" 
{ 
#endif 
Boolean ConfigStoreIsPassword(char *pName); 

#ifdef __cplusplus 
} 
#endif 

#endif //_CONFIGSTORE_H_ 

は私のcppファイル内のCヘッダを含めています方法です:

Cヘッダは次のようになります私は、以下のエラーが表示されます: ../../../../src/Common/framework/configstore.h:52:エラー: 'ブール'の型名はありません

私はcppファイルにcヘッダーを追加する方法をお知らせください。 ありがとうございます!

-Vasavi

+0

CまたはC++とは関係ありません。タイプを定義する(または定義を持つファイルを含める)必要があります。 – littleadv

+0

'Boolean'はCまたはC++の型ではありません。 'typedef'やマクロはC言語では使えないので、どこかにあるのですか? – hmjd

+0

includeが動作しています。あなたの' Boolean'型に関連する問題があります。 – Paul

答えて

5

ここでは2つのことが思い浮かびます。 1つは、ブロックextern "C"の中にextern "C"ブロックを入れ子にしています。外側のブロックを取り外します。

2件のうち、BooleanはC++ではキーワードではありません。 boolです。ヘッダーを含める前にtypedef bool Boolean;を追加してください。

+4

"boolean"はC++型でもなく、 "bool"です。 – haffax

1

BooleanC又はC++のいずれかのための標準的なタイプではありません。

あなたのファイルを含める前に、Booleanが宣言されているヘッダを見つけ出す必要があります。

0

Booleanタイプの定義を提供する必要があります。これは、C++コンパイラが理解できるものです。

extern "C"はシンボル名のマングリングの方法に影響を与えますが、魔法のようにC++コンパイラがC固有の型を理解することにはなりません。

Booleanは、とにかく有効です。あなたのインクルードから抜け出した別のヘッダがあります。

0

#includeステートメントの周りに使用する必要はありません。使用しないでください。ヘッダーはすでにこれを行います。 configstore.hにはBooleanという定義を含める必要があります。他の人が触れたように、configstore.hを含める前に、Booleanの定義をソースファイルに追加することもできます(または定義を含めることもできます)。

関連する問題