[Insight-developers] Warnings when building ITK with MSVC

Williams, Norman K norman-k-williams at uiowa.edu
Mon Sep 17 10:27:34 EDT 2012


>> c:\src\itk\modules\thirdparty\metaio\src\metaio\metaUtils.h:43:>>
>>warning: C4619: #pragma warning : there is no warning number '4284'


Sprinkled around the code there are a number of pragmas to turn off Visual
Studio warnings.  Apparently even the warnings get deprecated
eventually.This particular error message reminds me of the Monty Python
Bruce sketch, where a list of rules is read out, and rule 6 is "there is
no rule 6."
>>
>>C:\src\ITK\Modules\ThirdParty\DICOMParser\src\DICOMParser\DICOMParser.cxx
>>:628:
>> warning: C4242: 'initializing' : conversion from 'int' to 'char',
>> possible loss of data

This warning comes from the way that this library encodes DICOM VR types
-- it is an enumerated type, but the enumerated values are in effect ascii
strings packed into whatever native type enumerations have, little-endian
order.  For example the VR type OB is represented 0x424f, which on a
little-endian machine corresponds to the 2 character string 'OB'.  This is
extravagently clever, but unfortunately obscure.

Since this is a 3rd Party library it raises the inevitable dilemma: Fix it
in place or try and get it into the upstream library version and update
it?  Honestly I don't know why we need 2 different ways to read a DICOM
file, particularly since I'm trying to introduce a third way, the DCMTK
library.

The warning could go away by using casts to assign the char values.


>>
>>c:\src\itk\modules\thirdparty\gdcm\src\gdcm\source\common\gdcmmd5.cxx:70:
>>>> warning: C4702: unreachable code

This comes from some dodgy conditional compilation. The code at the end of
the function is only accessible if GDCM_BUILD_TESTING is defined.  The
code after the conditional needs to be moved up inside the conditional.

Which raises the question -- do we have any mechanism in place to push
fixes back to GDCM? Is there any interest in bringing down a more current
version of GDCM?  At this point, if a user wants to write a program that
parses through DICOM datasets for things other than image data, they have
to use 'raw' GDCM. This causes a dilemma if we want to deprecate it as
there will be some corpus of code out in the wild that will break if GDCM
isn't available.  Since we broke a bunch of code when we moved from GDCM
V1 to V2, we risk alientating the ITK users who depend on GDCM if they
have to rewrite their code yet again.








--
Kent Williams norman-k-williams at uiowa.edu






On 9/16/12 8:50 AM, "David Doria" <daviddoria at gmail.com> wrote:

>c:\src\itk\modules\thirdparty\metaio\src\metaio\metaUtils.h:43:
>warning: C4619: #pragma warning : there is no warning number '4284'
>



________________________________
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
________________________________


More information about the Insight-developers mailing list