00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkWin32Header.h,v $ 00005 Language: C++ 00006 Date: $Date: 2005/02/08 03:16:28 $ 00007 Version: $Revision: 1.29 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 Portions of this code are covered under the VTK copyright. 00013 See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details. 00014 00015 This software is distributed WITHOUT ANY WARRANTY; without even 00016 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00017 PURPOSE. See the above copyright notices for more information. 00018 00019 =========================================================================*/ 00020 #ifndef __itkWIN32Header_h 00021 #define __itkWIN32Header_h 00022 00023 #include "itkConfigure.h" 00024 00025 // add in the Windows variants 00026 00027 #if defined(__CYGWIN__) 00028 #ifndef WIN32 00029 #define WIN32 1 00030 #endif 00031 #ifndef _WIN32 00032 #define _WIN32 1 00033 #endif 00034 #endif 00035 00037 #if defined(_MSC_VER) 00038 00039 // 'conversion' conversion from 'type1' to 'type2', possible loss of data 00040 #pragma warning ( disable : 4244 ) 00041 00042 // 'identifier' : truncation from 'type1' to 'type2' 00043 #pragma warning ( disable : 4305 ) 00044 00045 // 'conversion' : truncation of constant value 00046 #pragma warning ( disable : 4309 ) 00047 00048 // decorated name length exceeded, name was truncated 00049 #pragma warning ( disable : 4503 ) 00050 00051 // 'identifier' : identifier was truncated to 'number' characters in the 00052 // debug information 00053 #pragma warning ( disable : 4786 ) 00054 00055 // 'type' : forcing value to bool 'true' or 'false' (performance warning) 00056 #pragma warning ( disable : 4800 ) 00057 00058 // 'identifier' : class 'type' needs to have dll-interface to be used by 00059 // clients of class 'type2' 00060 #pragma warning ( disable : 4251 ) 00061 00062 00063 // non dll-interface class 'type' used as base for dll-interface class 'type2' 00064 #pragma warning ( disable : 4275 ) 00065 00066 // C++ exception specification ignored except to indicate a 00067 // function is not __declspec(nothrow) 00068 #pragma warning ( disable : 4290 ) 00069 00070 // 'type' : inconsistent dll linkage. dllexport assumed. 00071 #pragma warning ( disable : 4273 ) 00072 00073 00074 // typename keyword in default template arguments is not accepted by 00075 // MSVC. This macro should only be used in such places. 00076 # if !defined(CABLE_CONFIGURATION) && (_MSC_VER < 1310) 00077 # define ITK_TYPENAME 00078 # else 00079 # define ITK_TYPENAME typename 00080 # endif 00081 #else 00082 # define ITK_TYPENAME typename 00083 #endif 00084 00085 // ITK_EXPORT can not be used 00086 #define ITK_EXPORT 00087 00088 #if (defined(_WIN32) || defined(WIN32)) && !defined(ITKSTATIC) 00089 # ifdef ITKCommon_EXPORTS 00090 # define ITKCommon_EXPORT __declspec(dllexport) 00091 # else 00092 # define ITKCommon_EXPORT __declspec(dllimport) 00093 # endif /* ITKCommon_EXPORT */ 00094 #else 00095 /* unix needs nothing */ 00096 #define ITKCommon_EXPORT 00097 #endif 00098 00099 00100 #endif