みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2005-09-03 09:14:53

QNo.1623418

暇なときに回答ください

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

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

投稿日時 - 2005-09-03 13:08:12

お礼

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

投稿日時 - 2005-09-05 19:47:30

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2005-09-03 10:21:14

お礼

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

投稿日時 - 2005-09-05 19:48:04

あなたにオススメの質問