C#コンポーネントをVC++(ネイティブ)で使用することは可能でしょうか?
直接使えなくても見せかけでも構いませんので方法があれば教えてください
例えばC#で子画面だけ作ってVC++画面の子画面として表示するとか
全画面をC#で書きなおせばいいんでしょうけど
作業時間が取れなくてなんとかC#コンポーネントを
VC++画面にくみこめないかなと思っています
C#コンポーネントはグラフコントロールです。
VC++は2005です。OSはXPです。
C++/CLI使えば?
επιστημηさんも書かれていますけれど、
完全にネイティブでと言う話なら無理なんじゃないかと思います。
C#は.NET Frameworkを使っているので少なくともC++/CLIの助けが
必要になると思います。
C++/CLIでラッパーでも作れば、何とかなるのかなぁ。
ありがとうございます。
C++/CLIだと普通にC++のForm使えるんですね…
MFC01::Form1^ form1 = gcnew MFC01::Form1;
form1->Show();
グラフのみ.netコンポーネントにしたいだけなので
これでいこうと思います。
>MFC01::Form1^ form1 = gcnew MFC01::Form1;
>form1->Show();
>
>グラフのみ.netコンポーネントにしたいだけなので
>これでいこうと思います。
画面自体をFormで作るならそれでいいけど、MFCのダイアログ内でグラフのみ
使うとかだったらグラフコントロールのHandleプロパティを使って
SetParentで子ウインドウにすることで、MFCダイアログのコントロールとして
見せることもできるんじゃないかなと。
ちなみにその場合はガベージコレクタに回収されてコントロールが
消滅したりしないように、あらかじめダイアログクラスのプライベートメンバに
gcrootテンプレートの変数を用意しておき、gcnewで生成したコントロールの
インスタンスをそちらに割り当てる必要があると思われます。
きょうびのMFCはFrame内にWindows-Formsを
貼り付ける台紙:CWinFormsViewが用意されちょります。
>きょうびのMFCはFrame内にWindows-Formsを
>貼り付ける台紙:CWinFormsViewが用意されちょります。
ほんとだ・・・
コントロールもCWinFormsControl::CreateManagedControl()
呼ぶだけで作れました。
MFCも奥が深いですね(^^;