none
glitches compiling Adobe DNG SDK (dng_validate)

    Question

  • Please bear with me as I am new to Visual Studio & am trying to navigate the steep learning curve.

    I am trying to validate the way I have configured the Adobe DNG SDK. This contains the dng_validate project, which I understand I need to be able to build/debug without errors before I can proceed.

    To do this, I have installed VS 2012 (together with VS 2017), because the DNG SDK uses the v120 platform toolset & it pulled numerous errors on my machine until VS 2012 was installed.

    The errors it now throws are "unresolved external symbol" for "gVerbose" and "gDumpLineLimit," seemingly in the following code:

    #if qDNGValidate
    
    /// When validation (qValidate) is turned on, this global enables verbose
    /// output about DNG tags and other properties.
    
    extern bool gVerbose;
    
    /// When validation (qValidate) is turned on, and verbose mode (gVerbose) is
    /// enabled, limits the number of lines of text that are dumped for each tag.
    
    extern uint32 gDumpLineLimit;
    
    #endif
    

    So I guess my question is this: Is there a simple mistake that I could be making that would create this error? My assumption is that the DNG SDK doesn't contain the mistake, which means I must have made the error (?)

    Any suggestions/direction would be greatly appreciated,

    thanks!

    PS. If it helps, the other reference to qDNGvalidate is in the following code:

    /*****************************************************************************/
    
    /// \def qDNGValidateTarget 
    /// 1 if dng_validate command line tool is being built, 0 otherwise.
    
    #ifndef qDNGValidateTarget
    #define qDNGValidateTarget 0
    #endif
    
    /*****************************************************************************/
    
    /// \def qDNGValidate 
    /// 1 if DNG validation code is enabled, 0 otherwise.
    
    #ifndef qDNGValidate
    #define qDNGValidate qDNGValidateTarget
    #endif
    
    /*****************************************************************************/
    

    Saturday, November 18, 2017 10:53 PM

All replies

  •  
    Maybe there is some preprocessor-definition missing(?)/inconsistency(?).
    E.g. I'd try adding something like
    /D "qDNGValidate=1" 

    in project-property-pages (Project->Properties) 'Configuration Properties->C/C++->Command Line' 'Additional Options'
     - would also check, in case there are dependent libraries.

    No warranty

    With kind regards

    Sunday, November 19, 2017 1:26 PM
  •  
    Maybe there is some preprocessor-definition missing(?)/inconsistency(?).
    E.g. I'd try adding something like
    /D "qDNGValidate=1" 

    in project-property-pages (Project->Properties) 'Configuration Properties->C/C++->Command Line' 'Additional Options'
     - would also check, in case there are dependent libraries.

    Thanks so much for the reply!

    it looks like /D "qDNGValidate=1" is already defined in the project properties page...

    It would be likely that I've mis-managed dependent libraries... I'll post a query on the Adobe forum to see if I've screwed anything up there & post back once I know.

    much appreciated!

    Sunday, November 19, 2017 7:20 PM
  • Hi Madumi,

    Thanks for your posting.

    To fix external symbol error you may refer to this thread which lists all kinds of potential causes and corresponding solutions.

    and is you are using Adobe DNG, I also suggest you post your issue at Adobe forum where might be a better place to get a professional answer. I found a related case there.  

     

    Best regards,

    Fletcher


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    Monday, November 20, 2017 7:51 AM
  • In the meantime downloaded 'Adobe DNG Software Development Kit (SDK) 1.4' zip.
    Skimming through solution (opened in VS2015) properties ...
    dng_sdk library project (DNG Validate target Debug as recommended):

    dng_validate applicaton (Validate Debug as recommended):

    Do you by any chance are building different configurations?
    Looks like there exist some configs, where e.g. for dng_sdk there is explicitely
    qDNGValidate=0
    With kind regards
    Monday, November 20, 2017 10:27 AM
  • Besides, for you mentioned Visual Studio 2017.
    Just saw, dng_validate application links against libraries (xmp), which are 'precompiled' by a different toolset .
    If you eventually intend to switch to VS2017, would assume, you would need to get hold of the sources of these libraries and
    rebuild them using Visual C++ 2017. 

    Maybe of interest:

    Overview of potential upgrade issues (Visual C++)
    https://docs.microsoft.com/en-us/cpp/porting/overview-of-potential-upgrade-issues-visual-cpp

    With kind regards
    Monday, November 20, 2017 11:13 AM
  • @MaybeCompletelyW

    Thanks so much for your reply & for taking the time to attempt to debug dng_validate. Were you successful?

    I checked through the different preprocessor definitions, both for dng_sdk & dng_validate & I have the same values as you do (qDNGValidate is defined as "0" in dng_dk, but as "1" in dng_validate). For my side, I am still not able to debug successfully. It still pulls the same errors "unresolved external symbol" for "gVerbose" and "gDumpLineLimit" within dng_validate.

    I posted on the Adobe forum here: https://forums.adobe.com/thread/2414147

    sandy_mc (who replied) seems pretty knowledgeable, but I can't make out how his answer applies. When I search the VS solution explorer for dng_globals.cpp, it's part of the dng_sdk folder structure, but it's not part of the dng_validate folder structure. But that said, dng_validate references the entire dng_sdk, so wouldn't that link it all back to dng_globals.cpp anyway?

    I've checked all the other solutions on the adobe forums & can't one that helps. Those who have said they've been able to debug successfully simply said they used VS2013 & followed instructions (which I think I have also). At present, I'm not concerned that DNG SDK/XMP needs upgrading to compatibility with VS2017. I'll worry about that later. I'd just like to know that everything in the DNG SDK is in place correctly, even if it's under v120/VS2013

    Wednesday, November 22, 2017 4:46 PM
  • I have the same values as you do (qDNGValidate is defined as "0" in dng_dk, but as "1" in dng_validate).

    Sorry, probably some misunderstanding.

    qDNGValidate may not be defined as null in dng_sdk.

    In VS2015, intellisense shows in this case, as expected, grayed out lines in dng_global.cpp.

    That is, these lines will not get compiled. Linking an application, which declares these variables as 'extern' will fail. (https://stackoverflow.com/questions/10422034/when-to-use-extern-in-c)

    Should look like:

    Are you really sure you build 'DNG Validate Target Debug' for this library.

    With kind regards


    Wednesday, November 22, 2017 7:27 PM
  • Also can you confirm, that dng_validate references the correct library?
    E.g. for Win32 would expect:

    With kind regards

    Thursday, November 23, 2017 6:44 AM
  • @MaybeCompletelyW

    Thank you so much for the additional input & sorry for the delay responding... I'm new to VS & was hoping to deal with the learning curve *after* having the dng_validate application compile correctly.

    To answer your questions, indeed, qDNGValidate is not defined in dng_globals.cpp

    With that said, I don't know how to fix this... My assumption, going into this, was that the Adobe DNG SDK would compile dng_validate without errors straight out of the box.

    Is there a simple solution? thanks again so much!

    Wednesday, November 29, 2017 8:22 PM
  • My assumption, going into this, was that the Adobe DNG SDK would compile dng_validate without errors straight out of the box.

    Would agree to your assumption.

    One possible reason, why not:

    After I unpacked the zip-file and loaded it into VS 2015), the settings in 'Solution Property Pages' appeared to be correct, but the 'References' of 'dng_sdk' project seem wrong to me - that is, refer to wrong library.
    So what I would try:
    Make sure having the correct solution configuration (right click on solution in Solution Explorer -> Properties). Should look like this:

    Then remove reference to 'dng_sdk' from 'References' of dng_validate:

    'Add Reference ...' 'dng_sdk' to dng_validate project again:

     
    'Rebuild Solution'.

    With kind regards

    Wednesday, November 29, 2017 9:51 PM
  • @MaybeCompletelyW

    Thanks so much again for your input. Are you able to build the "Solution" without errors?

    Reason I ask is that I checked the solution configuration, and it appears like your screenshot... And then I removed the dng_sdk reference from dng_validate (as above), and then added the reference back (the only one available for adding was dng_sdk).

    When I try to rebuild, I have the same errors as before... but if you're able to build it without errors, I must be doing something else wrong.

    I'd really value if you could give input again, thanks!

    Thursday, November 30, 2017 12:54 AM
  •  Are you able to build the "Solution" without errors?

    In the meantime yes, not having VS 2013 used VS2017 - Toolset v141/SDK 10.0.16299.0 - (x64) - had to acquire new version of cmake, discovered some 'readmes' about third-party, rebuilt xmp with VS2017, added 'qWinUniversal' to preprocessor, tweaked some Include- and Library-directory-paths, re-evaluated 'References' (see above) but I
    did not have to change anything regarding 'qDNGValidate' IIRC.

    As far as I can see, building the library
    'dng_sdk_x64_DNG Validate Target Debug.lib'
    with 'qDNGValidateTarget=1' implies definition of 'qDNGValidate'.

    Can you show the relevant part of (or the x64 equivalent)

    ...\dng_sdk_1_4\dng_sdk\projects\win\dng_sdk\Win32_DNG Validate Target Debug\obj\dng_sdk.tlog\CL.command.1.tlog

    starting with
    ^C:\DNG\DNG_SDK_1_4\DNG_SDK_1_4\DNG_SDK\SOURCE\DNG_GLOBALS.CPP
    ending with
    ^C:\DNG\DNG_SDK_1_4\DNG_SDK_1_4\DNG_SDK\SOURCE\DNG_HOST.CPP

    With kind regards


    Thursday, November 30, 2017 10:28 AM
  • @MaybeCompletelyW

    Thanks so much again for your reply...

    I am sorry to say I don't quite know what you mean, though I am very willing to learn...

    I am using VS2017 (community edition) as I figured it would be easier to use the same version you're dealing with

    In my file explorer (if that's what you mean), I have E:\dng_sdk_1_4\dng_sdk\projects\win\dng_sdk but no Win32_DNG subfolder in that folder

    I have:

    E:\dng_sdk_1_4\dng_sdk\source\dng_globals.cpp

    and

    E:\dng_sdk_1_4\dng_sdk\source\dng_host.cpp

    Do you want me to execute a command to give the results in CL.command.1.tlog? If so, could you give me a hint how to do so. Presently the "Visual Studio 2017" folder in my user/documents folder doesn't have a CL.command.1.tlog file in it (yet)...

    sorry for the ignorance, any guidance would be deeply appreciated, thx!

    --------------------------------

    Edited...

    I think I found the CL.command.1.tlog file in a sub-folder of the dng_sdk project here:

    E:\dng_sdk_1_4\dng_sdk\projects\win\dng_sdk\Win32_Debug\obj\dng_sdk.tlog

    the relevant lines from dng_globals.cpp to dng_host.cpp are as follows:

    ^E:\DNG_SDK_1_4\DNG_SDK\SOURCE\DNG_GLOBALS.CPP
    /c /I../../../../dng_sdk/source /I../../../../xmp/toolkit/public/include /I"../../../../xmp/toolkit/third-party/zlib" /Zi /nologo /W3 /WX- /Od /Oy- /D qDNGValidate=0 /D qDNGDebug=1 /D _DEBUG /D _CONSOLE /D _CRT_SECURE_NO_DEPRECATE /D WIN32 /D qWinOS=1 /D qMacOS=0 /D qVisualC=1 /D _WINDOWS=1 /D BIB_MULTI_THREAD=1 /D _VC80_UPGRADE=0x0710 /D _MBCS /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"WIN32_DEBUG\OBJ\\" /Fd"WIN32_DEBUG\OBJ\VC120.PDB" /Gd /TP /analyze- E:\DNG_SDK_1_4\DNG_SDK\SOURCE\DNG_GLOBALS.CPP
    ^E:\DNG_SDK_1_4\DNG_SDK\SOURCE\DNG_HOST.CPP
    /c /I../../../../dng_sdk/source /I../../../../xmp/toolkit/public/include /I"../../../../xmp/toolkit/third-party/zlib" /Zi /nologo /W3 /WX- /Od /Oy- /D qDNGValidate=0 /D qDNGDebug=1 /D _DEBUG /D _CONSOLE /D _CRT_SECURE_NO_DEPRECATE /D WIN32 /D qWinOS=1 /D qMacOS=0 /D qVisualC=1 /D _WINDOWS=1 /D BIB_MULTI_THREAD=1 /D _VC80_UPGRADE=0x0710 /D _MBCS /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"WIN32_DEBUG\OBJ\\" /Fd"WIN32_DEBUG\OBJ\VC120.PDB" /Gd /TP /analyze- E:\DNG_SDK_1_4\DNG_SDK\SOURCE\DNG_HOST.CPP
    




    • Edited by Madumi Monday, December 04, 2017 11:55 PM
    Monday, December 04, 2017 11:50 PM
  • Probably i am overlooking something ...

    So just to be sure, we are talking about the same thing:
    Are you using dng_sdk_1_4.zip from the official download site of adobe, like I do?
    For neither object-output-path of build,

    /Fo"WIN32_DEBUG\OBJ\\"
    nor compiler-switches in log-file matches the ones I get, when this Configuration is Active:


    Which should do a build with
     'Project Configuration' for dng_sdk library: 'DNG Validate Target Debug'
     'Project Configuration' for dng_validate application:'DNG Validate Debug'

    Understanding Build Configurations
    https://docs.microsoft.com/en-us/visualstudio/ide/understanding-build-configurations

    According to my experience with this solution, Visual Studio - in your case - is building 'Debug' Configuration of dng_sdk library, which compiles with 

    /D qDNGValidate=0
    /D (Preprocessor Definitions)
    https://docs.microsoft.com/en-us/cpp/build/reference/d-preprocessor-definitions

    leading to unresolved external symbols, when building dng_validate application subsequently.  

    So before Rebuild, please double check, that 'Solutions Configurations' in toolbar points to

    Else you have to change it!

    Probably you may want to resize respective text-field :
    Tools->Customize...'


    With kind regards
    Tuesday, December 05, 2017 10:31 AM
  • @MaybeCompletelyW

    Yes, I'm using dng_sdk_1_4.zip from the official Adobe download site...

    It's a bit embarrassing simply that I seem to have been using the wrong build configuration... I'm definitely only at the start of the learning curve with VS...

    If you don't mind me double-checking that I'm on the right path, when I build using the "DNG Validate Target Debug" solution configuration, the two builds succeed, but there are a bunch of warnings. the first one for dng_validate is

    TargetPath(E:\dng_sdk_1_4\dng_sdk\projects\win\dng_validate\Validate Debug\Win32\dng_validate.exe) does not match the Linker's OutputFile property value (E:\dng_sdk_1_4\dng_sdk\targets\win\debug32\dng_validate.exe)

    and then there are 23 LNK4204 warnings for XMPCoreStaticDebug.lib (missing debugging information for referencing module)

    followed by 100 LNK4204 warning for XMPFilesStaticDebug.lib (missing debugging information for referencing module)

    -----------------------

    I'm assuming that the 123 LNK4204 warnings are fixable if I rebuilt XMP (?), but I don't know whether the first warning about the target path is a problem.

    Am I good to go (my next step will be actually to learn Visual Studio... :-) )

    Thanks so much for your help so far, it's much appreciated!

    Thursday, December 07, 2017 8:40 PM
  • ...

    It's a bit embarrassing simply that I seem to have been using the wrong build configuration... 

    ...

    Well, I would not quite expect issues for an existing configuration (combination). It's a little bit peculiar ...
    In respect to linker warnings:
    No linker warnings as for xmp libraries here, but remember I (had to) rebuilt these libraries with new toolset, so having symbols (up-to-date) available. Besides, xmp in dng_sdk_1_4.zip ships without source, which may lead in any case to a somewhat unpleasant 'debugging' experience, when trying to step into the xmp-part ...
    For 'TargetPath', think, you should get along with
    $(OutDir)$(TargetName)$(TargetExt)

    in project 'dng_validate' project-properties 'Linker->General' 'Output File'.
    Having a (hopefully) runnable application, debugging may yield first impressions about sdk-usage. 

    With kind regards

    Friday, December 08, 2017 10:54 AM
  • @MaybeCompletelyW

    Thank you so very much again for your reply & so sorry for how long it takes me to respond--I am slow in debugging etc.

    I tried

    $(OutDir)$(TargetName)$(TargetExt)

    for the 'TargetPath', and it was indeed effective, to remove the first warning.


    To deal with the other warnings, I attempted to build the XMP SDK. I've double checked directories & dependencies multiple times (I put cmake in the tools folder, and expat & zlib in the third-party folder). But when I try to execute GenerateXMPToolkitSDK_win.bat in an elevated command prompt (using option 3 to build a static library), it gives me a CMake Error: "Could not find CMAKE_ROOT !!!"

    I've tried to track this down (also I tried the command prompts from VS2012, 2015 & 2017). I've tried using a different version of cmake, but there seems to be an operator problem because it's giving the error:

    Modules directory not found in
    E:/dng_sdk_1_4_XMP_rebuilt/xmp/build/xmp/tools/cmake/share/cmake-3.9

    (It's not dropping down from /xmp/build  into the /xmp/tools directory, where cmake is found... for some reason it is building the relative tree /xmp/build/xmp/tools (which doesn't exist)).

    The last thing I tried was to download Visual Studio 2015 (that's the version you said you were using), however, so far I'm getting the download error:

    "VSSecondaryInstaller_box, Download of product 'PowerShellToolsV! failed. Downloaded file failed signature verification and may have been tampered with"

    All that to say that I'm still trying to get rid of all the XMP warnings from the DNG compilation, but so far I'm stuck, seemingly stuck at the relative directory mismatch when executing GenerateXMPToolkitSDK_win.bat

    I'll keep trying. You've been very helpful & I'm very grateful. Don't worry if it's troublesome to keep troubleshooting, but if you have any suggestions, I'm open ears,

    thanks!

    Thursday, December 21, 2017 4:41 PM
  • Not accustomed to cmake either ...
    Would try for 2017:
    Use one of these cmake-x.x.x-win64-x64.msi's and make sure %PATH% is adjusted during install.
    (Probably you may be able to omit copying folders /bin and /share into <xmpsdk>/tools/cmake/).
    Creating sln for VS 2017:
    Set 'GeneratorVersion' in .\build\shared\CMakeUtils.bat to VS2017 (use VS2017 editor, because of line-feed):
     :: Visual Studio Version
     if /I "%1"=="2015" (
     
     echo "Generator VS 2015 specified"
     set GeneratorVersion=Visual Studio 15 2017
     set CMakeGenVersion_FolderSuffix=
     )

    In command prompt, choose first a 'Clean All' then 'Generate ...'.
    For cmake-3.9.6-win64-x64.msi target static Win32 cmake reports success for
    cmake ../../../. -G"Visual Studio 15 2017" -DXMP_CMAKEFOLDER_NAME=""vc14/static/
    windows"" -DCMAKE_CL_64=OFF -DCMAKE_ARCH=x86 -DXMP_BUILD_WARNING_AS_ERROR=On -DX
    MP_BUILD_STATIC="On"
    

    With kind regards

    Sunday, December 24, 2017 1:36 PM
  • @MaybeCompletelyW

    Thanks so very much again... Indeed, when I used the *.msi for cmake & chose "Add CMake to the system PATH..." cmake worked & successfully generated the XMPToolkitSDK64.sln (so far, so good).

    Then, I opened XMPToolkitSDK64.sln in VS2017... Platform toolset is Visual Studio 2015 (v140), and Platform is x64, but when I build the Debug solution configuration, I have quite a number of errors, most of them seem to infer that the XMP toolkit uses outdated arguments/operators...

    Should I be using a different platform toolset (the documentation states XMP is compatible with VS2015 v.14)?

    Here's the list of errors I am seeing (if that helps)... Is there something I should do to avoid these errors?

    Thanks again!

    Severity	Code	Description	Project	File	Line	Suppression State
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\WAVE\WAVEReconcile.cpp	494	
    Warning	C4477	'_snprintf' : format string '%lu' requires an argument of type 'unsigned long', but variadic argument 1 has type 'std::size_t'	XMPCoreStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPCore\source\XMPIterator.cpp	117	
    Warning	C4244	'=': conversion from 'double' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\XMP_ProgressTracker.cpp	134	
    Warning	C4244	'initializing': conversion from 'double' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\XMP_ProgressTracker.cpp	142	
    Warning	C4244	'=': conversion from 'double' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\XMP_ProgressTracker.cpp	149	
    Warning	C4244	'=': conversion from 'double' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\XMP_ProgressTracker.cpp	150	
    Warning	C4267	'argument': conversion from 'size_t' to 'int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\Host_IO-Win.cpp	756	
    Warning	C4267	'argument': conversion from 'size_t' to 'int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\Host_IO-Win.cpp	808	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	114	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	116	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	118	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	120	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	122	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	124	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	126	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	128	
    Warning	C4244	'argument': conversion from 'AdobeXMPCommon::sizet' to 'AdobeXMPCommon::uint32', possible loss of data (compiling source file E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPCore\source\CoreObjectFactoryImpl.cpp)	XMPCoreStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPCommon\Utilities\TWrapperFunctions_I.h	417	
    Warning	C4244	'argument': conversion from 'AdobeXMPCommon::sizet' to 'AdobeXMPCommon::uint32', possible loss of data (compiling source file E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPCore\source\CoreObjectFactoryImpl.cpp)	XMPCoreStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPCommon\Utilities\TWrapperFunctions_I.h	399	
    Warning	C4244	'=': conversion from 'double' to 'XMP_Uns8', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\MP3_Handler.cpp	133	
    Warning	C4244	'=': conversion from 'double' to 'XMP_Uns8', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\MP3_Handler.cpp	134	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\JPEG_Handler.cpp	340	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\JPEG_Handler.cpp	361	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\JPEG_Handler.cpp	373	
    Warning	C4267	'=': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\JPEG_Handler.cpp	517	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_StringLen', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1081	
    Warning	C4244	'+=': conversion from 'XMP_Int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1258	
    Warning	C4244	'+=': conversion from 'XMP_Int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1266	
    Warning	C4244	'+=': conversion from 'XMP_Int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1275	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_StringLen', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1307	
    Warning	C4267	'initializing': conversion from 'size_t' to 'XMP_Int32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1391	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1423	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1684	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1689	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1697	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1699	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1703	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1705	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1714	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1727	
    Warning	C4244	'argument': conversion from 'unsigned __int64' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PSD_Handler.cpp	313	
    Warning	C4267	'=': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\SWF_Handler.cpp	128	
    Warning	C4267	'=': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\SWF_Handler.cpp	298	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\SWF_Handler.cpp	311	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\SWF_Handler.cpp	320	
    Warning	C4244	'argument': conversion from 'unsigned __int64' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\TIFF_Handler.cpp	364	
    Warning	C4244	'argument': conversion from 'unsigned __int64' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\TIFF_Handler.cpp	367	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	109	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	113	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	115	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	117	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	122	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	124	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	128	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	130	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	132	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	136	
    Warning	C4244	'initializing': conversion from '__int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\AIFF\AIFFBehavior.cpp	177	
    Warning	C4297	'IFF_RIFF::ChunkController::~ChunkController': function assumed not to throw an exception but does	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\IFF\ChunkController.cpp	53	
    Warning	C4244	'return': conversion from '__int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\IFF\IChunkBehavior.cpp	32	
    Warning	C4267	'initializing': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\WAVE\INFOMetadata.cpp	155	
    Warning	C4267	'initializing': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\WAVE\INFOMetadata.cpp	197	
    Warning	C4244	'initializing': conversion from '__int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\WAVE\WAVEBehavior.cpp	255	
    Warning	C4267	'initializing': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\SWF_Support.cpp	41	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\SWF_Support.cpp	231	
    Warning	C4267	'=': conversion from 'size_t' to 'uInt', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\SWF_Support.cpp	237	
    Warning	C4267	'argument': conversion from 'size_t' to 'XMP_Index', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\ReconcileTIFF.cpp	2041	
    Warning	C4267	'initializing': conversion from 'size_t' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\TIFF_FileWriter.cpp	1546	

    Editing to add extra info:

    ----------------------------------------------

    I tried building using updated versions of the third party tools, as well as updated versions of cmake. None of these changes helped.

    After discovering that the XMP toolkit was built with the VS2010 v100 platform toolset, I installed VS2010 & tried using that toolset, but this didn't reduce the number of Warnings (I've also tried building using the VS2015 & VS2017 platform toolsets--also with no improvement)

    The 32-bit static version generates fewer warnings (41), but they are similar warnings to those generated when building the 64-bit static version.

    What would I need to do to resolve these warnings?

    If it helps, here's the list of warnings from building the 32-bit static version:

    Severity	Code	Description	Project	File	Line	Suppression State
    Warning	C4244	'=': conversion from 'double' to 'XMP_Uns8', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\MP3_Handler.cpp	134	
    Warning	C4244	'=': conversion from 'double' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\XMP_ProgressTracker.cpp	134	
    Warning	C4244	'initializing': conversion from 'double' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\XMP_ProgressTracker.cpp	142	
    Warning	C4244	'=': conversion from 'double' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\XMP_ProgressTracker.cpp	149	
    Warning	C4244	'=': conversion from 'double' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\source\XMP_ProgressTracker.cpp	150	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	114	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	116	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	118	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	120	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	122	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	124	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	126	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\AIFF_Handler.cpp	128	
    Warning	C4244	'=': conversion from 'double' to 'XMP_Uns8', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\MP3_Handler.cpp	133	
    Warning	C4244	'argument': conversion from 'XMP_Int64' to 'unsigned int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\P2_Handler.cpp	788	
    Warning	C4244	'argument': conversion from 'XMP_Int64' to 'unsigned int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\P2_Handler.cpp	792	
    Warning	C4244	'argument': conversion from 'XMP_Int64' to 'unsigned int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\P2_Handler.cpp	794	
    Warning	C4244	'argument': conversion from 'XMP_Int64' to 'unsigned int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\P2_Handler.cpp	811	
    Warning	C4244	'+=': conversion from 'XMP_Int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1258	
    Warning	C4244	'+=': conversion from 'XMP_Int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1266	
    Warning	C4244	'+=': conversion from 'XMP_Int64' to 'XMP_Uns32', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PostScript_Handler.cpp	1275	
    Warning	C4244	'argument': conversion from 'unsigned int' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\PSD_Handler.cpp	313	
    Warning	C4503	'std::_Wrap_alloc<AdobeXMPCore_Int::TAllocator<_Newfirst>>::construct': decorated name length exceeded, name was truncated	XMPCoreStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPCore\source\StructureNodeImpl.cpp	232	
    Warning	C4503	'std::allocator_traits<_Alloc>::construct': decorated name length exceeded, name was truncated	XMPCoreStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPCore\source\StructureNodeImpl.cpp	232	
    Warning	C4503	'std::allocator_traits<_Alloc>::_Construct1': decorated name length exceeded, name was truncated	XMPCoreStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPCore\source\StructureNodeImpl.cpp	232	
    Warning	C4244	'argument': conversion from 'unsigned int' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\TIFF_Handler.cpp	364	
    Warning	C4244	'argument': conversion from 'unsigned int' to 'float', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\TIFF_Handler.cpp	367	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	109	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	113	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	115	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	117	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	122	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	124	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	128	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	130	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	132	
    Warning	C4838	conversion from '' to 'XMP_Uns32' requires a narrowing conversion	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp	136	
    Warning	C4297	'IFF_RIFF::ChunkController::~ChunkController': function assumed not to throw an exception but does	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\IFF\ChunkController.cpp	53	
    Warning	C4244	'argument': conversion from 'XMP_Uns64' to 'unsigned int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\WAVE\iXMLMetadata.cpp	896	
    Warning	C4244	'argument': conversion from 'XMP_Uns64' to 'unsigned int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\WAVE\iXMLMetadata.cpp	917	
    Warning	C4244	'argument': conversion from 'XMP_Uns64' to 'unsigned int', possible loss of data	XMPFilesStatic	E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FormatSupport\WAVE\iXMLMetadata.cpp	919	


    • Edited by Madumi Tuesday, January 16, 2018 11:08 PM
    Monday, January 15, 2018 9:25 PM
  • Not that sure, this being a general issue with toolset.
    For it is 'third party', normally, one would contact code maintainer.
    You certainly can lookup warning messages and try to fix them yourself (if license allows), but then you have some 'derivative'.

    General guideline
    Type Conversions and Type Safety (Modern C++)
    https://msdn.microsoft.com/en-us/library/hh279667.aspx

    XMP seems to have some spec:
    XMP Specification
    http://www.adobe.com/devnet/xmp.html
      
    E.g. take:
    Warning C4838 conversion from '' to 'XMP_Uns32' requires a narrowing conversion XMPFilesStatic E:\dng_sdk_1_4_XMP\xmp\toolkit\XMPFiles\source\FileHandlers\WAVE_Handler.cpp 109
    Just skimming with Intellisense. Looks like, according to definition of
    struct ChunkIdentifier
    {
     XMP_Uns32 id;
       XMP_Uns32 type;
    };

    where XMP_Uns32 is
    typedef unsigned long XMP_Uns32; 

    const ChunkIdentifier WAVE_MetaHandler::kRIFFXMP[2] = { { kChunk_RIFF, kType_WAVE }, { kChunk_XMP, kType_NONE} };
    expects 'unsigned long' for kChunk_RIFF, ..., ... kType_XMP  ... but getting plain enum.

    So would try (since C++11) for 'IFF/RIFF ids' and 'IFF/RIFF types' in ChunkPath.h:

    	enum : unsigned long {
    	// invalid ID
    	kChunk_NONE = UINT_MAX,
    
    	// format chunks
    	kChunk_RIFF = 0x52494646,
    	kChunk_RF64 = 0x52463634,
    	kChunk_FORM = 0x464F524D,

    Take:
    Warning C4244 '=': conversion from 'double' to 'XMP_Uns8', possible loss of data XMPFilesStatic C:\TEMP\XMP-Toolkit-SDK-CC201607\XMP-Toolkit-SDK-CC201607\XMPFiles\source\FileHandlers\MP3_Handler.cpp 134 

    this->minorVersion = 2.3;

    where Intellisense says:
    XMP_Uns8 majorVersion, minorVersion; 

    is
    typedef unsigned char XMP_Uns8;

    Not sure about intention of author.

    Nevertheless projects should compile.
    No warranty
    With kind regards
    Saturday, January 20, 2018 3:02 PM