C ++ MFC - 在MFC DLL和WTL exe之间共享数据?

时间:2012-04-03 22:09:07

标签: c++ mfc wtl

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

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

1 个答案:

答案 0 :(得分:0)

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

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