OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

CファイルとCPPファイルのDLL作成

  • すぐに回答を!
  • 質問No.180686
  • 閲覧数263
  • ありがとう数0
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 12% (35/274)

CファイルとCPPファイルを同一DLLに取り込むことは可能でしょうか?もし可能であれば実現方法も教えて頂きたいのですが。
現状は別DLLを作成しているのですが、両ファイルを取り込んでビルドすると外部関数宣言をしている箇所がエラーになってしまいます。(extern "C"の箇所が・・・)
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル11

ベストアンサー率 58% (114/195)

extern "C"を使っているのはCPPファイルですか?
またextern "C"が何をするか理解されていますか?

extern "C"の意味を理解なされていないのであれば素直に諦めるか拡張子をCPPで統一してProjectに登録した方が楽でしょう。

C++では関数名に引数の種類や個数の情報を付与し、オーバーロードを実現します。
extern "C"はその後に続く定義関数のlinkage命名方法をCと同じ命名規約で名前付けします。
つまりその中にオーバーロードした関数などがあると(命名規約が変わり一意に関数が特定できないため)旨くリンクできなくなる可能性があります(実際に試した事はないんでどうなるかは不明ですが)。

なのでc拡張子のファイルをcppにするだけでも命名規約はCPPにそろうため旨く動くはずです。

どうしてもextern "C"を使うのであればMSDNの
VisualC++ドキュメント-VisualC++ユーザーズガイド-VisualC++プログラマーズガイド-プログラム機能の追加-詳細-混合言語によるプログラミング-C++を使った混合言語によるプログラミング
を読みましょう。
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル11

ベストアンサー率 30% (72/239)

コンパイラは何を使用しているのですか? ...続きを読む
コンパイラは何を使用しているのですか?
補足コメント
sting

お礼率 12% (35/274)

説明不足ですみません・・VC++6.0です。
投稿日時 - 2001-12-06 15:00:11
  • 回答No.2
レベル11

ベストアンサー率 30% (72/239)

VC++と言う事ですが、 cファイルを既存のC++のワークスペースに取り込みたいんですよね? ⇒"c"ファイルの拡張子を"cpp"に変更して普通に組み込めませんか? それとも逆をしようとしているのですか? ※エラー箇所がわかっているなら原因はわかると思うので、  修正の方向ではだめなのですか? ...続きを読む
VC++と言う事ですが、
cファイルを既存のC++のワークスペースに取り込みたいんですよね?
⇒"c"ファイルの拡張子を"cpp"に変更して普通に組み込めませんか?
それとも逆をしようとしているのですか?

※エラー箇所がわかっているなら原因はわかると思うので、
 修正の方向ではだめなのですか?
補足コメント
sting

お礼率 12% (35/274)

元々はCで作成したDLLとCPPで作成したDLLと別ファイルだったのですが、
呼び元の問題でDLLを1つにまとめたいとのことでチャレンジしています。
当初は安易に全ソース取り込みDLLを作成すればできると考えていた
のですが、外部宣言のextern "C"と記述するとエラーが発生してしまいます。(Cファイルがあるから?)
"C"をはずせばDLLは作成できるのですが、DLL内を見ると外部関数名に"?"がついてしまいます。
拡張子だけ変えれば済む問題なのでしょうか?
投稿日時 - 2001-12-06 15:54:17
  • 回答No.3
レベル11

ベストアンサー率 30% (72/239)

コンパイラから実態が見えていないだけなのでは? きちんと外部コール関数は定義されていますか? ⇒ヘッダーや"*.def"等のファイル。
コンパイラから実態が見えていないだけなのでは?

きちんと外部コール関数は定義されていますか?
⇒ヘッダーや"*.def"等のファイル。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ