added wxPersistentRegisterAndRestore() function to work around VC6 brokenness in debug DLL build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -215,5 +215,23 @@ private:
|
||||
DECLARE_NO_COPY_CLASS(wxPersistentObject)
|
||||
};
|
||||
|
||||
// FIXME-VC6: VC6 has troubles with template methods of DLL-exported classes,
|
||||
// apparently it believes they should be defined in the DLL (which
|
||||
// is, of course, impossible as the DLL doesn't know for which types
|
||||
// will they be instantiated) instead of compiling them when
|
||||
// building the main application itself. Because of this problem
|
||||
// (which only arises in debug build!) we can't use the usual
|
||||
// RegisterAndRestore(obj) with it and need to explicitly create the
|
||||
// persistence adapter. To hide this ugliness we define a global
|
||||
// function which does it for us.
|
||||
template <typename T>
|
||||
inline bool wxPersistentRegisterAndRestore(T *obj)
|
||||
{
|
||||
wxPersistentObject * const pers = wxCreatePersistentObject(obj);
|
||||
|
||||
return wxPersistenceManager::Get().RegisterAndRestore(obj, pers);
|
||||
|
||||
}
|
||||
|
||||
#endif // _WX_PERSIST_H_
|
||||
|
||||
|
Reference in New Issue
Block a user