00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkWin32Header.h,v $ 00005 Language: C++ 00006 Date: $Date: 2008-05-19 14:34:10 $ 00007 Version: $Revision: 1.32 $ 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 // non dll-interface class 'type' used as base for dll-interface class 'type2' 00063 #pragma warning ( disable : 4275 ) 00064 00065 // C++ exception specification ignored except to indicate a 00066 // function is not __declspec(nothrow) 00067 #pragma warning ( disable : 4290 ) 00068 00069 // 'type' : inconsistent dll linkage. dllexport assumed. 00070 #pragma warning ( disable : 4273 ) 00071 00072 // conditional expression is constant 00073 #pragma warning ( disable : 4127 ) 00074 00075 // unreferenced local function has been removed 00076 #pragma warning ( disable : 4505 ) 00077 00078 00079 // typename keyword in default template arguments is not accepted by 00080 // MSVC. This macro should only be used in such places. 00081 # if !defined(CABLE_CONFIGURATION) && (_MSC_VER < 1310) 00082 # define ITK_TYPENAME 00083 # else 00084 # define ITK_TYPENAME typename 00085 # endif 00086 #else 00087 # define ITK_TYPENAME typename 00088 #endif 00089 00090 // When a class definition has ITK_EXPORT, the class will be 00091 // checked automatically, by Utilities/Dart/PrintSelfCheck.tcl 00092 #define ITK_EXPORT 00093 00094 #if (defined(_WIN32) || defined(WIN32)) && !defined(ITKSTATIC) 00095 # ifdef ITKCommon_EXPORTS 00096 # define ITKCommon_EXPORT __declspec(dllexport) 00097 # else 00098 # define ITKCommon_EXPORT __declspec(dllimport) 00099 # endif /* ITKCommon_EXPORT */ 00100 #else 00101 /* unix needs nothing */ 00102 #define ITKCommon_EXPORT 00103 #endif 00104 00105 00106 #endif 00107