2012-04-03 56 views
0

我有一個MFC項目,提供了一個GUI界面來處理複雜的數據結構(我們稱之爲ComplicatedClass)。我有一個需要使用這個類的WTL項目。我想只能管理這個類的一個實例,並且不希望每個項目都有自己的ComplicatedClass副本。C++ MFC-在MFC DLL和WTL exe之間共享數據?

如果我想讓這些項目共享這個類的一個實例,我該如何以安全可靠的方式去做這件事?看起來我唯一的選擇是基本上有兩個類的副本(一個由MFC項目管理,另一個由WTL方管理)。

回答

0

你不需要兩個副本。你沒有提到你的應用程序是如何構建的,但我認爲MFC項目是一個.exe,而WTL則是一個dll。從dll中導出一個函數,該函數接受一個ComplicatedClass *並將其存儲以供您的dll使用。我在這裏假設ComplicatedClass沒有任何UI數據 - 即沒有CWnd派生的對象。如果是這樣,你需要小心地正確包裝你的HWND,或者堅持只使用win32消息(即只使用:: SendMessage)。

這只是一般性的建議,你的問題還不夠具體。例如,我不明白你爲什麼得出結論,你必須有兩個副本。如果你只是傳遞一個指針到另一個指針,它們都可以訪問它們。