none
MFCで作成したDLL内のクラスをWindowsFormから使用できますか? RRS feed

  • 質問

  • アプリケーションはWindowsFormにしたいのですが、
    既存のMFC DLLは、できればそのまま使用したいと思っています。
    classを使用していない場合は[DllImport...]で簡単に参照、利用できたのですが、
    classを使用している場合、どのようにするかわかりません。

    例えば
    class  __declspec(dllexport) CTestClass
    {
    public:
     CTestClass(void);
     ~CTestClass(void);
    public:
     void Test();
    };
    のようなクラスを持つMFC DLLのTest()を
    C#で書いたWindowsFormから呼び出すことはできるのでしょうか?

    2009年11月11日 1:56

回答

  • 事実上「できない」と考えた方がいいでしょう。

    最も現実的な解は、C++/CLI で MFC DLL のラッパを作成して、それを仲介して Windows Forms アプリケーションから MFC DLL の機能呼び出しを行うことです。
    • 回答としてマーク かばさん 2009年11月11日 3:07
    2009年11月11日 2:34
    モデレータ

すべての返信

  • 事実上「できない」と考えた方がいいでしょう。

    最も現実的な解は、C++/CLI で MFC DLL のラッパを作成して、それを仲介して Windows Forms アプリケーションから MFC DLL の機能呼び出しを行うことです。
    • 回答としてマーク かばさん 2009年11月11日 3:07
    2009年11月11日 2:34
    モデレータ
  • 回答、ありがとうございます。

    ラッパの作成を考えてみます。

    2009年11月11日 3:10
  • 回答、ありがとうございます。

    ラッパの作成を考えてみます。


    ちょうど別のスレッドで 、C++/CLI ラッパに関する質問が挙がってます。

    ActiveXの外観をWindowsXP風にしたい

    上記スレッドの中盤辺りから C# ← C++/CLI ← MFC の話題が出てますので
    参考に目を通されるとよいかと思います。

    ちなみに向こうは MFC 拡張 DLL ですので、かなり苦戦されてるようですが。 

    2009年11月11日 3:24
    モデレータ