tchar.h

Martin Fuchs martin-fuchs at gmx.net
Sat Oct 9 06:38:54 CDT 2004


Hello,

can anyone explain to me, what's the exact reason for the following
error message in wine/include/tchar.h:

#if defined(_UNICODE) || defined(_MBCS)
#error You must use msvcrt when building in Unicode/MBCS mode
#endif


It disallows inclusion of this <tchar.h> header file when using the
_UNICODE define.  Just a few lines later in this file there are the
following definitions:

/*****************************************************************************
 * tchar mappings
 */
#ifndef _UNICODE
#  ifndef _MBCS
#    include <string.h>
#    define WINE_tchar_routine(std,mbcs,unicode) std
#  else
#    include <mbstring.h>
#    define WINE_tchar_routine(std,mbcs,unicode) mbcs
#  endif
#else /* _UNICODE */
#  include <wchar.h>
#  define WINE_tchar_routine(std,mbcs,unicode) unicode
#endif

Again asking for "_UNICODE" !
So something can't be right with this.
The <tchar.h> header should really define constants like _tcschr
dependend on the _UNICODE define. But currently this doesn't
work because of the error message described above.

Either there should be a overriding "wine/include/msvcrt/tchar.h"
file with different defintions. Or the error message "You must use
msvcrt when building in Unicode/MBCS mode" is simply superfluous.


Regards,

   Martin




More information about the wine-devel mailing list