HDF5-1.6.2 was successfully built and tested using Managed Extensions on the C++ projects. The steps to do this are: Download hdf5, unzip it. Unzip windows "all.zip" file into hdf5 folder. Open all.dsw, let Visual Studio convert the project files. Trying to compile at this point will generate a number of errors as the projects try to link to libm.lib. Fix this by telling each project that complains not to link to libc.lib, libm.lib, or libirc.lib: go to Properties->Linker->Input->Ignore Specific Library and enter libc.lib; libm.lib; libirc.lib. At this point, HDF5 should build without errors. Now turn on Managed Extensions in all of the cpp projects: go to Properties->General and set Use Managed Extensions to "Yes." Trying to compile at this point should generate a number of new errors. The first one is a complaint about the /RTC1 (Run-time checking) flag being incompatible with the /clr flag. Turn off run-time checking in each individual source file in the projects that are generating the errors (changing project settings will not change settings in the files because of a bug in VS 2003). Go to the file properties->C/C++->Code Generation->Basic Runtime Checks and set it to Default. Next, there were errors because of the precompiled headers (/YX flags). Turn these off in project properties->C/C++->Precompiled Headers by setting "Create/Use Precompiled Headers" to "Not Using Precompiled Headers." Then some more errors occur which don't occur when compiling in the development branch, relating to multiply defined symbols in libcd.lib and libcmtd.lib. The problem here is that some of the projects are set to use libcd.lib and some try to use the multi-threaded library libcmtd.lib. Since the CLR does not support the single-threaded library, all the projects will have to be compiled using libcmtd.lib. To change the setting for a given project, go to Properties->C/C++->Code Generation and change Runtime Library to "Multi-threaded Debug (/MTd)." The errors should occur for the projects dsets_cpp, dsets_cppdll, and testhdf5_cpp. These projects need to use the multi-threaded library and so do all of the projects they depend on: hdf5_cpp, hdf5_cppdll, and libtest, along with the dependencies' dependencies. Essentially, the projects will stop generating errors when they are multithreaded and every project they depend on is also multithreaded. Of course, now every project that uses the single-threaded library will break when it depends on a multi-threaded hdf5 project. You should have a host of new library errors. Fix these by setting all of the projects that complain to use the Multi-threaded Debug library. Even more errors should appear as symbols included from LIBCD.LIB conflict with symbols from LIBCMTD.LIB. Exclude libcd.lib from these projects by going back to Properties->Linker->Input->Ignore Specific Libraries and adding libcd.lib to the list. Now testhdf5_cppdll will complain about a number of unresolved tokens. This is because when the /clr flag is set, hdf5_cppdll stops allowing itself to be automatically imported into other projects that depend on it. To restore this setting, go to Properties->Linker->General and set Ignore Import Library to "No." This should (finally!) resolve all of the errors. We have successfully (and reliably) built both the release version and the development branch in Visual Studio 2003 using these steps.