Search code examples
visual-studio-2015atlwdkwtlwic

WIC Explorer in Visual Studio 2015 Community Edition


I would like to get started with WIC(Windows Imaging Component) Explorer.

I have downloaded the WIC Explorer Solution.

I have downloaded Windows Template Library version 9.0 which is a requirement, and copied the files from the "Include" directory to the "wtl90" directory of the WIC Explorer Solution as instructed.

I am using Visual Studio 2015 Community Edition. I built the WIC Explorer Solution however there were errors, not in the WIC Explorer project but in the Windows Template Library files.

I looked in the Windows Template Library Read Me #Support for Visual C++ Express and there is something about needing ATL version 8 when working in Visual C++ Express as it appears the Express Editions did not come with ATL, so I presume it is the same for 2015 Community Edition.

The Read Me says that ATL is available in Windows Driver Kit Version 7.1.0, so I installed this and followed the instruction to run AppWiz\setup.js, however it gave me an error stating that it could not find a version of Visual Studio installed.

How do I setup ATL with Visual Studio 2015 Community Edition so that I can build the WIC Explorer Solution correctly?

UPDATE: Apparently ATL is installed with Visual Studio 2015 Community Edition if it is selected as an option during install. I'm guessing it is installed with MFC if that option is selected. Though clearly I still need to do some kind of setup for WIC Explorer as the included WTL files appear not to be aware of ATL.

I'm wondering it the AppWiz\setup.js file could be modified to include paths to Visual Studio 2015 Community Edition. Though I don't know what the new paths would be.

    var nVersions = 12;

var astrRegKeyVer = new Array();
astrRegKeyVer[0] = "Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[1] = "Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir";
astrRegKeyVer[2] = "Microsoft\\VisualStudio\\8.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[3] = "Microsoft\\VisualStudio\\9.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[4] = "Microsoft\\VisualStudio\\10.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[5] = "Microsoft\\VisualStudio\\11.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[6] = "Microsoft\\VisualStudio\\12.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[7] = "Microsoft\\VCExpress\\8.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[8] = "Microsoft\\VCExpress\\9.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[9] = "Microsoft\\VCExpress\\10.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[10] = "Microsoft\\VCExpress\\11.0\\Setup\\VC\\ProductDir";
astrRegKeyVer[11] = "Microsoft\\VCExpress\\12.0\\Setup\\VC\\ProductDir";

var astrFolder = new Array();
astrFolder[0] = "vcprojects";
astrFolder[1] = "vcprojects";
astrFolder[2] = "vcprojects";
astrFolder[3] = "vcprojects";
astrFolder[4] = "vcprojects";
astrFolder[5] = "vcprojects";
astrFolder[6] = "vcprojects";
astrFolder[7] = "Express\\vcprojects";
astrFolder[8] = "Express\\vcprojects";
astrFolder[9] = "Express\\vcprojects";
astrFolder[10] = "vcprojects_WDExpress";
astrFolder[11] = "vcprojects_WDExpress";

var astrVersions = new Array();
astrVersions[0] = "Visual Studio 2002 (7.0)";
astrVersions[1] = "Visual Studio 2003 (7.1)";
astrVersions[2] = "Visual Studio 2005 (8.0)";
astrVersions[3] = "Visual Studio 2008 (9.0)";
astrVersions[4] = "Visual Studio 2010 (10.0)";
astrVersions[5] = "Visual Studio 2012 (11.0)";
astrVersions[6] = "Visual Studio 2013 (12.0)";
astrVersions[7] = "Visual Studio 2005 Express (8.0)";
astrVersions[8] = "Visual Studio 2008 Express (9.0)";
astrVersions[9] = "Visual Studio 2010 Express (10.0)";
astrVersions[10] = "Visual Studio 2012 Express (11.0)";
astrVersions[11] = "Visual Studio 2013 Express (12.0)";

var abExpress = new Array();
abExpress[0] = false;
abExpress[1] = false;
abExpress[2] = false;
abExpress[3] = false;
abExpress[4] = false;
abExpress[5] = false;
abExpress[6] = false;
abExpress[7] = true;
abExpress[8] = true;
abExpress[9] = true;
abExpress[10] = true;
abExpress[11] = true;

var astrWizVer = new Array();
astrWizVer[0] = "7.0";
astrWizVer[1] = "7.1";
astrWizVer[2] = "8.0";
astrWizVer[3] = "9.0";
astrWizVer[4] = "10.0";
astrWizVer[5] = "11.0";
astrWizVer[6] = "12.0";
astrWizVer[7] = "8.0";
astrWizVer[8] = "9.0";
astrWizVer[9] = "10.0";
astrWizVer[10] = "11.0";
astrWizVer[11] = "12.0";

Solution

  • Don't need to tick the option for MFC, or the windows driver kit to use WTL in VS2015. Using the WTL latest beta that Nenad released on the 27/9/15 WTL works in Visual Studio 2015. If compiler option /Wv:18 is set WIC Explorer builds and it can be run but "open directory..." crashes on Windows 10, "Open..." loads an image fine though.

    UPDATE

    WIC explorer code was updated December 2015, builds fine in vs2013 at least