基本的に、管理されていない VC++ 静的ライブラリがたくさんあります。そしてそれらを利用したMFCベースのVC++ GUIアプリケーション。目標は、GUI アプリを C# で行うものに置き換えることですが、すべて同じ静的ライブラリを使用します。問題は、これが可能かどうかです。可能であれば、それを達成する正しい方法は何ですか?
提案、誰か?ありがとう。
基本的に、管理されていない VC++ 静的ライブラリがたくさんあります。そしてそれらを利用したMFCベースのVC++ GUIアプリケーション。目標は、GUI アプリを C# で行うものに置き換えることですが、すべて同じ静的ライブラリを使用します。問題は、これが可能かどうかです。可能であれば、それを達成する正しい方法は何ですか?
提案、誰か?ありがとう。
Rob の言うとおりです。完全に C++/CLI で実行できますが、いくつかのネイティブ クラスをマネージ WinForms ユーザー コントロール クラスにラップするのが最も便利であることがわかりました。このマネージド クラスにはネイティブ クラスのインスタンスが含まれ、メソッド呼び出しで文字列などのデータをマーシャリングしただけでなく、ネイティブ コールバック (boost::signal で実装) を .NET イベントに変換しました。このシグナル イベント変換の全体的な解決策は、この質問で詳しく説明されています。.NET WinForms ユーザー コントロールもネイティブ例外をトラップし、マネージ例外として再スローし、.NET 以外のインターフェイス (反復子を返すメソッド) をより .NET スタイルのインターフェイスに変換しました。この質問. その後、WPF アプリケーションで .NET クラスを直接使用できるようになりました。.NET クラスとしてラップする場合、C# から使用するには DLL に入れる必要があることに注意してください。