Fix harmless C4275 MSVC warning in wxMSW DLL builds.

Since the addition of wxMSWOwnerDrawnButton, DLL builds started generated a
lot of warnings about using this non DLL-exported class as base class for the
DLL-exported wxCheckBox and wxRadioButton.

Simply suppress these warnings as they are harmless in this case because the
base class has no static data, which is the real problem this warning hints at.

Closes #16237.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2014-05-07 13:10:17 +00:00
parent 3fd098960f
commit be00806392
3 changed files with 26 additions and 4 deletions

View File

@ -13,6 +13,13 @@
#include "wx/msw/ownerdrawnbutton.h"
#ifdef __VISUALC__
// Disable the warning about non DLL-exported wxMSWOwnerDrawnButton class
// used as base for DLL-exported class: it's harmless in this case.
#pragma warning(push)
#pragma warning(disable:4275)
#endif
// Checkbox item (single checkbox)
class WXDLLIMPEXP_CORE wxCheckBox : public wxMSWOwnerDrawnButton<wxCheckBoxBase>
{
@ -77,5 +84,8 @@ private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckBox)
};
#ifdef __VISUALC__
#pragma warning(pop)
#endif
// _WX_CHECKBOX_H_
#endif // _WX_CHECKBOX_H_

View File

@ -17,8 +17,10 @@
// This class contains the type-independent part of wxMSWOwnerDrawnButton and
// is implemented in src/msw/control.cpp.
//
// Notice that it is intentionally not exported, it is internal implementation
// detail only.
// Notice that it is intentionally not DLL-exported, it is internal
// implementation detail only. However MSVS generates a warning C4275 when
// deriving from the non-exported classes, so it needs to be explicitly
// disabled when deriving from this one.
class wxMSWOwnerDrawnButtonBase
{
protected:

View File

@ -13,6 +13,13 @@
#include "wx/msw/ownerdrawnbutton.h"
#ifdef __VISUALC__
// Disable the warning about non DLL-exported wxMSWOwnerDrawnButton class
// used as base for DLL-exported class: it's harmless in this case.
#pragma warning(push)
#pragma warning(disable:4275)
#endif
class WXDLLIMPEXP_CORE wxRadioButton : public wxMSWOwnerDrawnButton<wxControl>
{
public:
@ -78,5 +85,8 @@ private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxRadioButton)
};
#ifdef __VISUALC__
#pragma warning(pop)
#endif
// _WX_RADIOBUT_H_
#endif // _WX_RADIOBUT_H_