2012-04-03 20 views
0

私は、複雑なデータ構造を操作するためのGUIインターフェイスを提供するMFCプロジェクトを持っています(これをCompleicatedClassと呼ぶ)。私はこのクラスをたくさん使う必要があるWTLプロジェクトを持っています。私は、このクラスのインスタンスを1つしか管理することができないようにしたいと思いますし、各プロジェクトに独自のComplicatedClassのコピーを持たせたくありません。C++ MFC - MFC DLLとWTLの間でデータを共有するexe?

これらのプロジェクトでこのクラスの1つのインスタンスを共有したい場合、これを安全かつ確実に行うにはどうしたらよいですか?私の唯一の選択肢は、基本的にクラスの2つのコピー(MFCプロジェクトで管理されるクラスとWTLサイドで管理されるクラス)を2つ持つことだと思われます。

答えて

0

2部は必要ありません。あなたのアプリケーションがどのように構造化されているかは言及していませんが、私はMFCプロジェクトが.exeであり、WTLがDLLであると仮定します。 ComplicatedClass *を取るdllから関数をエクスポートし、dllで使用するためにその関数を保存します。ここでは、ComplicatedClassにUIデータがないと仮定します。つまり、CWndから派生したオブジェクトはありません。そうであれば、HWNDを適切にラップするか、Win32専用のメッセージングに固執する(つまり、SendMessageのみを使用する)ように注意する必要があります。

これは一般的なアドバイスですが、あなたの質問は他には十分ではありません。たとえば、私はあなたが2つのコピーを持たなければならないと結論づけた理由は分かりません。一方から他方にポインタを渡すだけで、ポインタにアクセスすることができます。

関連する問題