# if defined(__VISUALC__) && (__VISUALC__ < 900)
# define wxUSE_WCHAR_T 0 // wchar_t is not available for MSVC++ 1.5
# elif defined(__UNIX__)
-# if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) || (defined(__DARWIN__))
+# if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) || defined(__DARWIN__)
# define wxUSE_WCHAR_T 1
# else
# define wxUSE_WCHAR_T 0
# ifdef HAVE_WCSTR_H
# include <wcstr.h>
# else
- // VZ: do we really have to include this?
-# include <stdlib.h>
-
- // include wchar.h to get wcslen() declaration used by wx/buffer.h
# if defined(HAVE_WCHAR_H)
+
+// include wchar.h to get wcslen() declaration used by wx/buffer.h
# include <wchar.h>
+
+# elif defined(__FreeBSD__) || defined(__DARWIN__)
+
+// include stdlib.h for wchar_t, wcslen is provided in wxchar.cpp
+# include <stdlib.h>
+size_t WXDLLEXPORT wcslen(const wchar_t *s);
+
# endif
# endif
# endif