掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ヘッダファイルの書き方 (ID:51310)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Cから使うライブラリをC++で作るときには,extern "C"で修飾しないといけません。 #C++には多重定義があるので,とあるルールに従って名前を引き延ばしている。 さらに,Cで作られたライブラリをC++で使う場合も, 関数宣言をextern "C"で修飾するか, extern "C"ブロック内で宣言する必要があります。 というわけで,先ほどのfunc.hを拡張すると, ---- func.h ---- #ifndef FUNC_HEADER_FILE_ #define FUNC_HEADER_FILE_ #if defined(__cplusplus) extern "C" { #endif /* defined(__cplusplus) */ struct bar { /* メンバ */ }; int func (int, struct bar *); #if defined(__cplusplus) } #endif /* defined(__cplusplus) */ #endif /* !defined(FUNC_HEADER_FILE_) */ ---- func.h ---- となります。 ちなみに,このヘッダファイルは, ライブラリを生成するソースファイルからも取り込むのが普通です。 そうすることによって,結合を正しく指定できるためです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.