• ベストアンサー

CからMFCのDLLは呼出し可能?

C言語プログラムからMFCで作ったDLL(MFC AppWizard)を呼び出すことは可能でしょうか? Cで作ったDLL(Win32 Dinamic-Link Library)と同じように呼び出せるのでしょうか? ご教示お願いいたします。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

extern "C"を使って、関数をC結合にしておくと同時に、Cにない型や互換性がない型(boolや列挙型やクラス等)を引数や返却値に使わないことが必須条件です。 他には、関数から例外が送出されないように保証してやる必要があります。CプログラムなのにC++の例外が送出されても、どうすることもできませんから。

poohpiglet2
質問者

お礼

ご回答ありがとうございました。

その他の回答 (1)

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

DLL側でC言語インターフェースに合わせた関数宣言(extern "C" 宣言したもの)を用意してやれば問題なくアクセスできるはず。 DLLのインタフェースでクラスなどC++特有の機能を使ってると呼び出しようがないのでC++でラッパを作成してC言語インタフェースに合わせる必要がある。

poohpiglet2
質問者

お礼

ご回答ありがとうございました。