Intermediate files added to .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..db53c36
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+# intermediate files
+Win32/
+x64/
+resources/out/
+*.sdf
+*.suo
+*.opensdf
+*.user
diff --git a/tinyxml2.sln b/tinyxml2.sln
index 7073405..af8daa5 100644
--- a/tinyxml2.sln
+++ b/tinyxml2.sln
@@ -6,13 +6,19 @@
 Global

 	GlobalSection(SolutionConfigurationPlatforms) = preSolution

 		Debug|Win32 = Debug|Win32

+		Debug|x64 = Debug|x64

 		Release|Win32 = Release|Win32

+		Release|x64 = Release|x64

 	EndGlobalSection

 	GlobalSection(ProjectConfigurationPlatforms) = postSolution

 		{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}.Debug|Win32.ActiveCfg = Debug|Win32

 		{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}.Debug|Win32.Build.0 = Debug|Win32

+		{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}.Debug|x64.ActiveCfg = Debug|x64

+		{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}.Debug|x64.Build.0 = Debug|x64

 		{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}.Release|Win32.ActiveCfg = Release|Win32

 		{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}.Release|Win32.Build.0 = Release|Win32

+		{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}.Release|x64.ActiveCfg = Release|x64

+		{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}.Release|x64.Build.0 = Release|x64

 	EndGlobalSection

 	GlobalSection(SolutionProperties) = preSolution

 		HideSolutionNode = FALSE

diff --git a/tinyxml2/tinyxml2.vcxproj b/tinyxml2/tinyxml2.vcxproj
index 961f5b3..ec88e54 100644
--- a/tinyxml2/tinyxml2.vcxproj
+++ b/tinyxml2/tinyxml2.vcxproj
@@ -5,15 +5,24 @@
       <Configuration>Debug</Configuration>

       <Platform>Win32</Platform>

     </ProjectConfiguration>

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

     <ProjectConfiguration Include="Release|Win32">

       <Configuration>Release</Configuration>

       <Platform>Win32</Platform>

     </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

   </ItemGroup>

   <PropertyGroup Label="Globals">

     <ProjectGuid>{16A1D446-5415-444E-A7B4-F35B7DA7EE8C}</ProjectGuid>

     <Keyword>Win32Proj</Keyword>

     <RootNamespace>tinyxml2</RootNamespace>

+    <VCTargetsPath Condition="'$(VCTargetsPath11)' != '' and '$(VSVersion)' == '' and $(VisualStudioVersion) == ''">$(VCTargetsPath11)</VCTargetsPath>

   </PropertyGroup>

   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

@@ -21,27 +30,54 @@
     <UseDebugLibraries>true</UseDebugLibraries>

     <CharacterSet>Unicode</CharacterSet>

   </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>Application</ConfigurationType>

+    <UseDebugLibraries>true</UseDebugLibraries>

+    <CharacterSet>Unicode</CharacterSet>

+  </PropertyGroup>

   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

     <ConfigurationType>Application</ConfigurationType>

     <UseDebugLibraries>false</UseDebugLibraries>

     <WholeProgramOptimization>true</WholeProgramOptimization>

     <CharacterSet>Unicode</CharacterSet>

   </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>Application</ConfigurationType>

+    <UseDebugLibraries>false</UseDebugLibraries>

+    <WholeProgramOptimization>true</WholeProgramOptimization>

+    <CharacterSet>Unicode</CharacterSet>

+  </PropertyGroup>

   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

   <ImportGroup Label="ExtensionSettings">

   </ImportGroup>

   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

   </ImportGroup>

+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

   </ImportGroup>

+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

   <PropertyGroup Label="UserMacros" />

   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

     <LinkIncremental>true</LinkIncremental>

+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>

+    <IntDir>$(Platform)\$(Configuration)\</IntDir>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <LinkIncremental>true</LinkIncremental>

   </PropertyGroup>

   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

     <LinkIncremental>false</LinkIncremental>

+    <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>

+    <IntDir>$(Platform)\$(Configuration)\</IntDir>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <LinkIncremental>false</LinkIncremental>

   </PropertyGroup>

   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

     <ClCompile>

@@ -57,6 +93,20 @@
       <GenerateDebugInformation>true</GenerateDebugInformation>

     </Link>

   </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <PrecompiledHeader>

+      </PrecompiledHeader>

+      <WarningLevel>Level4</WarningLevel>

+      <Optimization>Disabled</Optimization>

+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <ExceptionHandling>false</ExceptionHandling>

+    </ClCompile>

+    <Link>

+      <SubSystem>Console</SubSystem>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+    </Link>

+  </ItemDefinitionGroup>

   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

     <ClCompile>

       <WarningLevel>Level3</WarningLevel>

@@ -66,6 +116,25 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>

       <IntrinsicFunctions>true</IntrinsicFunctions>

       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <StringPooling>true</StringPooling>

+    </ClCompile>

+    <Link>

+      <SubSystem>Console</SubSystem>

+      <GenerateDebugInformation>true</GenerateDebugInformation>

+      <EnableCOMDATFolding>true</EnableCOMDATFolding>

+      <OptimizeReferences>true</OptimizeReferences>

+    </Link>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <WarningLevel>Level3</WarningLevel>

+      <PrecompiledHeader>

+      </PrecompiledHeader>

+      <Optimization>MaxSpeed</Optimization>

+      <FunctionLevelLinking>true</FunctionLevelLinking>

+      <IntrinsicFunctions>true</IntrinsicFunctions>

+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <StringPooling>true</StringPooling>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

diff --git a/xmltest.cpp b/xmltest.cpp
index 8e5e01f..969aa9e 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -155,6 +155,8 @@
 	#pragma warning ( disable : 4996 )		// Fail to see a compelling reason why this should be deprecated.

 	#endif

 

+	CreateDirectory( L"resources/out/", NULL );

+

 	FILE* fp = fopen( "resources/dream.xml", "r" );

 	if ( !fp ) {

 		printf( "Error opening test file 'dream.xml'.\n"

@@ -297,7 +299,7 @@
 		XMLDocument doc;

 		doc.LoadFile( "resources/dream.xml" );

 

-		doc.SaveFile( "resources/dreamout.xml" );

+		doc.SaveFile( "resources/out/dreamout.xml" );

 		doc.PrintError();

 

 		XMLTest( "Dream", "xml version=\"1.0\"",

@@ -311,7 +313,7 @@
 			              doc.LastChild()->LastChild()->LastChild()->LastChild()->LastChildElement()->GetText() );

 

 		XMLDocument doc2;

-		doc2.LoadFile( "resources/dreamout.xml" );

+		doc2.LoadFile( "resources/out/dreamout.xml" );

 		XMLTest( "Dream-out", "xml version=\"1.0\"",

 			              doc2.FirstChild()->ToDeclaration()->Value() );

 		XMLTest( "Dream-out", true, doc2.FirstChild()->NextSibling()->ToUnknown() ? true : false );

@@ -408,7 +410,7 @@
 				 text->Value() );

 

 		// Now try for a round trip.

-		doc.SaveFile( "resources/utf8testout.xml" );

+		doc.SaveFile( "resources/out/utf8testout.xml" );

 

 		// Check the round trip.

 		int okay = 0;

@@ -541,7 +543,7 @@
 #pragma warning ( push )

 #pragma warning ( disable : 4996 )		// Fail to see a compelling reason why this should be deprecated.

 #endif

-		FILE* textfile = fopen( "resources/textfile.txt", "w" );

+		FILE* textfile = fopen( "resources/out/textfile.txt", "w" );

 #if defined(_MSC_VER)

 #pragma warning ( pop )

 #endif

@@ -555,7 +557,7 @@
 #pragma warning ( push )

 #pragma warning ( disable : 4996 )		// Fail to see a compelling reason why this should be deprecated.

 #endif

-		textfile = fopen( "resources/textfile.txt", "r" );

+		textfile = fopen( "resources/out/textfile.txt", "r" );

 #if defined(_MSC_VER)

 #pragma warning ( pop )

 #endif

@@ -624,9 +626,9 @@
 

 		XMLDocument doc;

 		doc.Parse( doctype );

-		doc.SaveFile( "resources/test7.xml" );

+		doc.SaveFile( "resources/out/test7.xml" );

 		doc.DeleteChild( doc.RootElement() );

-		doc.LoadFile( "resources/test7.xml" );

+		doc.LoadFile( "resources/out/test7.xml" );

 		doc.Print();

 		

 		const XMLUnknown* decl = doc.FirstChild()->NextSibling()->ToUnknown();