diff --git a/windows/liblzma.vcxproj b/windows/liblzma.vcxproj
new file mode 100644
index 00000000..cc85887e
--- /dev/null
+++ b/windows/liblzma.vcxproj
@@ -0,0 +1,359 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ ReleaseMT
+ Win32
+
+
+ ReleaseMT
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}
+ Win32Proj
+
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ true
+ v120
+
+
+ StaticLibrary
+ false
+ v120
+
+
+ StaticLibrary
+ false
+ v120
+
+
+ StaticLibrary
+ false
+ v120
+
+
+ StaticLibrary
+ false
+ v120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+
+
+ true
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+
+
+ true
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+
+
+ true
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+
+
+ true
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+
+
+ true
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+
+
+
+ WIN32;HAVE_CONFIG_H;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ ProgramDatabase
+ Disabled
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ MachineX86
+ true
+ Windows
+
+
+
+
+ WIN32;HAVE_CONFIG_H;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ ProgramDatabase
+ Disabled
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ true
+ Windows
+
+
+
+
+ WIN32;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ ProgramDatabase
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ MachineX86
+ true
+ Windows
+ true
+ true
+
+
+
+
+ WIN32;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ ProgramDatabase
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ true
+ Windows
+ true
+ true
+
+
+
+
+ WIN32;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreaded
+ Level3
+ ProgramDatabase
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ MachineX86
+ true
+ Windows
+ true
+ true
+
+
+
+
+ WIN32;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ MultiThreaded
+ Level3
+ ProgramDatabase
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ true
+ Windows
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows/liblzma_dll.vcxproj b/windows/liblzma_dll.vcxproj
new file mode 100644
index 00000000..dd8a5853
--- /dev/null
+++ b/windows/liblzma_dll.vcxproj
@@ -0,0 +1,388 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ ReleaseMT
+ Win32
+
+
+ ReleaseMT
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}
+ Win32Proj
+
+
+
+ DynamicLibrary
+ true
+ v120
+
+
+ DynamicLibrary
+ true
+ v120
+
+
+ DynamicLibrary
+ false
+ v120
+
+
+ DynamicLibrary
+ false
+ v120
+
+
+ DynamicLibrary
+ false
+ v120
+
+
+ DynamicLibrary
+ false
+ v120
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+ liblzma
+
+
+ true
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+ liblzma
+
+
+
+
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+ liblzma
+
+
+
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+ liblzma
+
+
+
+
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+ liblzma
+
+
+
+ $(SolutionDir)$(Configuration)\$(Platform)\$(ProjectName)\
+ $(Configuration)\$(Platform)\$(ProjectName)\
+ liblzma
+
+
+
+ WIN32;HAVE_CONFIG_H;_DEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ ProgramDatabase
+ Disabled
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ MachineX86
+ true
+ Windows
+
+
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;
+
+
+
+
+ WIN32;HAVE_CONFIG_H;_DEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ ProgramDatabase
+ Disabled
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ true
+ Windows
+
+
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;
+
+
+
+
+ WIN32;HAVE_CONFIG_H;NDEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ ProgramDatabase
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ MachineX86
+ true
+ Windows
+ true
+ true
+
+
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;
+
+
+
+
+ WIN32;HAVE_CONFIG_H;NDEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ ProgramDatabase
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ true
+ Windows
+ true
+ true
+
+
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;
+
+
+
+
+ WIN32;HAVE_CONFIG_H;NDEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreaded
+ Level3
+ ProgramDatabase
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ MachineX86
+ true
+ Windows
+ true
+ true
+
+
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;
+
+
+
+
+ WIN32;HAVE_CONFIG_H;NDEBUG;_WINDOWS;_USRDLL;LIBLZMADLL_EXPORTS;%(PreprocessorDefinitions)
+ MultiThreaded
+ Level3
+ ProgramDatabase
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;../src/liblzma/check;../src/liblzma/delta;../src/liblzma/lz;../src/liblzma/lzma;../src/liblzma/rangecoder;../src/liblzma/simple
+
+
+ true
+ Windows
+ true
+ true
+
+
+ ./;../src/liblzma/common;../src/common;../src/liblzma/api;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/windows/xz_win.sln b/windows/xz_win.sln
new file mode 100644
index 00000000..3d25291c
--- /dev/null
+++ b/windows/xz_win.sln
@@ -0,0 +1,48 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.31101.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblzma", "liblzma.vcxproj", "{12728250-16EC-4DC6-94D7-E21DD88947F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblzma_dll", "liblzma_dll.vcxproj", "{E0F247DB-EF12-4755-8DF9-F74BCD1348F7}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ ReleaseMT|Win32 = ReleaseMT|Win32
+ ReleaseMT|x64 = ReleaseMT|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|Win32.Build.0 = Debug|Win32
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|x64.ActiveCfg = Debug|x64
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|x64.Build.0 = Debug|x64
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|Win32.ActiveCfg = Release|Win32
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|Win32.Build.0 = Release|Win32
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.ActiveCfg = Release|x64
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.Build.0 = Release|x64
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.ReleaseMT|Win32.ActiveCfg = ReleaseMT|Win32
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.ReleaseMT|Win32.Build.0 = ReleaseMT|Win32
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.ReleaseMT|x64.ActiveCfg = ReleaseMT|x64
+ {12728250-16EC-4DC6-94D7-E21DD88947F8}.ReleaseMT|x64.Build.0 = ReleaseMT|x64
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Debug|Win32.Build.0 = Debug|Win32
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Debug|x64.ActiveCfg = Debug|x64
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Debug|x64.Build.0 = Debug|x64
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Release|Win32.ActiveCfg = Release|Win32
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Release|Win32.Build.0 = Release|Win32
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Release|x64.ActiveCfg = Release|x64
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.Release|x64.Build.0 = Release|x64
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.ReleaseMT|Win32.ActiveCfg = ReleaseMT|Win32
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.ReleaseMT|Win32.Build.0 = ReleaseMT|Win32
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.ReleaseMT|x64.ActiveCfg = ReleaseMT|x64
+ {E0F247DB-EF12-4755-8DF9-F74BCD1348F7}.ReleaseMT|x64.Build.0 = ReleaseMT|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal