0

複雑なデータ構造を操作するための GUI インターフェイスを提供する MFC プロジェクトがあります (これを ComplicatedClass と呼びましょう)。このクラスを頻繁に使用する必要がある WTL プロジェクトがあります。このクラスのインスタンスを 1 つだけ管理できるようにしたいのですが、各プロジェクトに独自の ComplicatedClass のコピーを持たせたくありません。

これらのプロジェクトでこのクラスの 1 つのインスタンスを共有したい場合、安全で信頼できる方法でこれを行うにはどうすればよいでしょうか? 私にとって唯一の代替手段は、基本的にクラスの 2 つのコピー (1 つは MFC プロジェクトによって管理され、もう 1 つは WTL 側によって管理される) を持つことです。

4

1 に答える 1

0

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

これは単なる一般的なアドバイスです。あなたの質問は他のものに対して十分に具体的ではありません。たとえば、なぜあなたが 2 つのコピーを持っている必要があると結論付けるのか、私にはわかりません。一方から他方にポインターを渡すだけで、両方がそれらにアクセスできます。

于 2012-04-04T15:23:54.207 に答える