/* appending the current line number to the given identifier to reduce the */
/* probability of the conflict (it may still happen if this is used in the */
/* headers, hence you should avoid doing it or provide unique prefixes then) */
-#define wxCONCAT_LINE(text) wxCONCAT(text, __LINE__)
+#if defined(__VISUALC__) && (__VISUALC__ >= 1300)
+ /*
+ __LINE__ handling is completely broken in VC++ when using "Edit and
+ Continue" (/ZI option) and results in preprocessor errors if we use it
+ inside the macros. Luckily VC7 has another standard macro which can be
+ used like this and is even better than __LINE__ because it is globally
+ unique.
+ */
+# define wxCONCAT_LINE(text) wxCONCAT(text, __COUNTER__)
+#else /* normal compilers */
+# define wxCONCAT_LINE(text) wxCONCAT(text, __LINE__)
+#endif
#define wxMAKE_UNIQUE_NAME(text) wxCONCAT_LINE(text)
/* symbolic constant used by all Find()-like functions returning positive */
inline void *wxUIntToPtr(wxUIntPtr p)
{
+#ifdef __VISUALC__
+ #pragma warning(disable: 4312) /* conversion to type of greater size */
+#endif
+
return wx_reinterpret_cast(void *, p);
+
+#ifdef __VISUALC__
+ #pragma warning(default: 4312)
+#endif
}
#endif /*__cplusplus*/
WXK_SPACE = 32,
WXK_DELETE = 127,
- WXK_START = 300,
+ WXK_START = 300, /* FIXME: Conflicts with UNICODE */
WXK_LBUTTON,
WXK_RBUTTON,
WXK_CANCEL,