Fix link errors with VC 11 in DLL STL build.

Don't declare wxWindowList as DLL-exported. It's unnecessary and appears to
create problems for VC 11.

Closes #14741.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-11-10 00:53:42 +00:00
parent 4ca30c7d65
commit 1bc5ddea15
4 changed files with 8 additions and 7 deletions

View File

@@ -148,21 +148,22 @@ inline const void *wxListCastElementToVoidPtr(const wxString& str)
decl _WX_LIST_HELPER_##liT \ decl _WX_LIST_HELPER_##liT \
{ \ { \
typedef elT _WX_LIST_ITEM_TYPE_##liT; \ typedef elT _WX_LIST_ITEM_TYPE_##liT; \
typedef std::list<elT> BaseListType; \
public: \ public: \
static BaseListType EmptyList; \
static void DeleteFunction( _WX_LIST_ITEM_TYPE_##liT X ); \ static void DeleteFunction( _WX_LIST_ITEM_TYPE_##liT X ); \
}; \ }; \
\ \
WX_LIST_VC6_WORKAROUND(elT, liT, decl) \ WX_LIST_VC6_WORKAROUND(elT, liT, decl) \
decl liT : public std::list<elT> \ class liT : public std::list<elT> \
{ \ { \
private: \ private: \
typedef std::list<elT> BaseListType; \ typedef std::list<elT> BaseListType; \
static BaseListType EmptyList; \
\ \
bool m_destroy; \ bool m_destroy; \
\ \
public: \ public: \
decl compatibility_iterator \ class compatibility_iterator \
{ \ { \
private: \ private: \
/* Workaround for broken VC6 nested class name resolution */ \ /* Workaround for broken VC6 nested class name resolution */ \
@@ -174,7 +175,7 @@ inline const void *wxListCastElementToVoidPtr(const wxString& str)
\ \
public: \ public: \
compatibility_iterator() \ compatibility_iterator() \
: m_iter(EmptyList.end()), m_list( NULL ) {} \ : m_iter(_WX_LIST_HELPER_##liT::EmptyList.end()), m_list( NULL ) {} \
compatibility_iterator( liT* li, iterator i ) \ compatibility_iterator( liT* li, iterator i ) \
: m_iter( i ), m_list( li ) {} \ : m_iter( i ), m_list( li ) {} \
compatibility_iterator( const liT* li, iterator i ) \ compatibility_iterator( const liT* li, iterator i ) \

View File

@@ -17,7 +17,7 @@
{ \ { \
delete X; \ delete X; \
} \ } \
name::BaseListType name::EmptyList; _WX_LIST_HELPER_##name::BaseListType _WX_LIST_HELPER_##name::EmptyList;
#else // !wxUSE_STD_CONTAINERS #else // !wxUSE_STD_CONTAINERS
#undef WX_DEFINE_LIST_2 #undef WX_DEFINE_LIST_2

View File

@@ -54,7 +54,7 @@ class WXDLLIMPEXP_FWD_BASE wxArrayInt;
class WXDLLIMPEXP_FWD_BASE wxProcess; class WXDLLIMPEXP_FWD_BASE wxProcess;
class WXDLLIMPEXP_FWD_CORE wxFrame; class WXDLLIMPEXP_FWD_CORE wxFrame;
class WXDLLIMPEXP_FWD_CORE wxWindow; class WXDLLIMPEXP_FWD_CORE wxWindow;
class WXDLLIMPEXP_FWD_CORE wxWindowList; class wxWindowList;
class WXDLLIMPEXP_FWD_CORE wxEventLoop; class WXDLLIMPEXP_FWD_CORE wxEventLoop;
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -762,6 +762,6 @@ void _WX_LIST_HELPER_wxStringListBase::DeleteFunction( wxString WXUNUSED(X) )
{ {
} }
wxStringListBase::BaseListType wxStringListBase::EmptyList; _WX_LIST_HELPER_wxStringListBase::BaseListType _WX_LIST_HELPER_wxStringListBase::EmptyList;
#endif // !wxUSE_STD_CONTAINERS #endif // !wxUSE_STD_CONTAINERS