0

我有一个 MFC 项目,它提供了用于操作复杂数据结构的 GUI 界面(我们称之为 ComplicatedClass)。我有一个 WTL 项目需要大量使用这个类。我希望能够只管理此类的一个实例,并且不希望每个项目都有自己的 ComplicatedClass 副本。

如果我希望这些项目共享此类的一个实例,我将如何以安全可靠的方式进行此操作?对我来说,唯一的选择似乎是基本上拥有该类的两份副本(一份由 MFC 项目管理,一份由 WTL 方管理)。

4

1 回答 1

0

你不需要两份。您没有提及您的应用程序的结构,但我假设 MFC 项目是一个 .exe,而 WTL 项目是一个 dll。从采用 ComplicatedClass* 的 dll 中导出一个函数,并将其存储在您的 dll 中使用。我在这里假设 ComplicatedClass 没有任何 UI 数据 - 即,没有 CWnd 派生的对象。如果是这样,您需要小心地正确包装您的 HWND,或者坚持只使用 win32 消息传递(即,仅使用 ::SendMessage)。

这只是一般建议,您的问题对于其他任何问题都不够具体。例如,我不明白您为什么得出结论说您必须拥有两个副本。如果您只是将指针从一个传递到另一个,它们都可以访问它们。

于 2012-04-04T15:23:54.207 回答