Mercurial > ms-int-types
comparison stdint.h @ 21:c0040f8fc49b
[Issue 2] Always wrap <wcharюрЮ with external "C" {}.
It turns out that not only Visual Studio 6 requires this, but also newer versions when compiling for ARM.
author | ipse.c99@d525d15b-5824-0410-80a3-6185d19c2cde |
---|---|
date | Mon, 11 May 2009 21:27:45 +0000 |
parents | 9be805b7c8c6 |
children | ff2caa6b48d1 |
comparison
equal
deleted
inserted
replaced
20:9be805b7c8c6 | 21:c0040f8fc49b |
---|---|
40 #pragma once | 40 #pragma once |
41 #endif | 41 #endif |
42 | 42 |
43 #include <limits.h> | 43 #include <limits.h> |
44 | 44 |
45 // For Visual Studio 6 in C++ mode wrap <wchar.h> include with 'extern "C++" {}' | 45 // For Visual Studio 6 in C++ mode and for many Visual Studio versions when |
46 // compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}' | |
46 // or compiler give many errors like this: | 47 // or compiler give many errors like this: |
47 // error C2733: second C linkage of overloaded function 'wmemchr' not allowed | 48 // error C2733: second C linkage of overloaded function 'wmemchr' not allowed |
48 #if (_MSC_VER < 1300) && defined(__cplusplus) | 49 extern "C" { |
49 extern "C++" { | 50 # include <wchar.h> |
50 #endif | 51 } |
51 # include <wchar.h> | |
52 #if (_MSC_VER < 1300) && defined(__cplusplus) | |
53 } | |
54 #endif | |
55 | 52 |
56 // Define _W64 macros to mark types changing their size, like intptr_t. | 53 // Define _W64 macros to mark types changing their size, like intptr_t. |
57 #ifndef _W64 | 54 #ifndef _W64 |
58 # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 | 55 # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 |
59 # define _W64 __w64 | 56 # define _W64 __w64 |