diff --git a/src/Vulkan/VkGetProcAddress.cpp b/src/Vulkan/VkGetProcAddress.cpp
index 308c0b5..55cd84a 100644
--- a/src/Vulkan/VkGetProcAddress.cpp
+++ b/src/Vulkan/VkGetProcAddress.cpp
@@ -429,3 +429,36 @@
 };
 
 #endif
+
+#if defined(_MSC_VER) && !defined(_WIN64)
+namespace
+{
+	// The following function is a hack to allow compilation in Visual Studio using the 32 bit compiler"
+	// "fatal error C1001: An internal error has occurred in the compiler.
+	//  (compiler file 'd:\agent\_work\1\s\src\vctools\compiler\utc\src\p2\main.c', line 187)"
+	void Dummy()
+	{
+		{ VkSemaphore handle; }
+		{ VkFence handle; }
+		{ VkDeviceMemory handle; }
+		{ VkBuffer handle; }
+		{ VkImage handle; }
+		{ VkEvent handle; }
+		{ VkQueryPool handle; }
+		{ VkBufferView handle; }
+		{ VkImageView handle; }
+		{ VkShaderModule handle; }
+		{ VkPipelineCache handle; }
+		{ VkPipelineLayout handle; }
+		{ VkRenderPass handle; }
+		{ VkPipeline handle; }
+		{ VkDescriptorSetLayout handle; }
+		{ VkSampler handle; }
+		{ VkDescriptorPool handle; }
+		{ VkFramebuffer handle; }
+		{ VkCommandPool handle; }
+		{ VkSamplerYcbcrConversion handle; }
+		{ VkDescriptorUpdateTemplate handle; }
+	}
+}
+#endif
\ No newline at end of file
diff --git a/src/Vulkan/VulkanPlatform.h b/src/Vulkan/VulkanPlatform.h
index 9825197..068d3eb 100644
--- a/src/Vulkan/VulkanPlatform.h
+++ b/src/Vulkan/VulkanPlatform.h
@@ -18,20 +18,10 @@
 #include <cstddef>
 #include <cstdint>
 
-// We can't directly use alignas(uint64_t) because on some platforms a uint64_t
-// has an alignment of 8 outside of a struct but inside it has an alignment of
-// 4. We use this dummy struct to figure out the alignment of uint64_t inside a
-// struct.
-struct DummyUInt64Wrapper {
-	uint64_t dummy;
-};
-
-static constexpr size_t kNativeVkHandleAlignment = alignof(DummyUInt64Wrapper);
-
-template<typename HandleType> class alignas(kNativeVkHandleAlignment) VkWrapperBase
+template<typename HandleType> class VkNonDispatchableHandleBase
 {
 public:
-	VkWrapperBase(HandleType handle)
+	VkNonDispatchableHandleBase(HandleType handle)
 	{
 		u.dummy = 0;
 		u.handle = handle;
@@ -57,23 +47,23 @@
 	union PointerHandleUnion
 	{
 		HandleType handle;
-		uint64_t dummy; // VkWrapper's size must always be 64 bits even when void* is 32 bits
+		uint64_t dummy; // VkNonDispatchableHandle's size must always be 64 bits even when void* is 32 bits
 	};
 	PointerHandleUnion u;
 };
 
-template<typename T> class alignas(kNativeVkHandleAlignment) VkWrapper : public VkWrapperBase<T>
+template<typename T> class VkNonDispatchableHandle : public VkNonDispatchableHandleBase<T>
 {
 public:
 	using HandleType = T;
 
-	VkWrapper() : VkWrapperBase<T>(nullptr)
+	VkNonDispatchableHandle() : VkNonDispatchableHandleBase<T>(nullptr)
 	{
 	}
 
-	VkWrapper(HandleType handle) : VkWrapperBase<T>(handle)
+	VkNonDispatchableHandle(HandleType handle) : VkNonDispatchableHandleBase<T>(handle)
 	{
-		static_assert(sizeof(VkWrapper) == sizeof(uint64_t), "Size is not 64 bits!");
+		static_assert(sizeof(VkNonDispatchableHandle) == sizeof(uint64_t), "Size is not 64 bits!");
 	}
 
 	void operator=(HandleType handle)
@@ -85,14 +75,14 @@
 // VkDescriptorSet objects are really just memory in the VkDescriptorPool
 // object, so define different/more convenient operators for this object.
 struct VkDescriptorSet_T;
-template<> class alignas(kNativeVkHandleAlignment) VkWrapper<VkDescriptorSet_T*> : public VkWrapperBase<uint8_t*>
+template<> class VkNonDispatchableHandle<VkDescriptorSet_T*> : public VkNonDispatchableHandleBase<uint8_t*>
 {
 public:
 	using HandleType = uint8_t*;
 
-	VkWrapper(HandleType handle) : VkWrapperBase<uint8_t*>(handle)
+	VkNonDispatchableHandle(HandleType handle) : VkNonDispatchableHandleBase<uint8_t*>(handle)
 	{
-		static_assert(sizeof(VkWrapper) == sizeof(uint64_t), "Size is not 64 bits!");
+		static_assert(sizeof(VkNonDispatchableHandle) == sizeof(uint64_t), "Size is not 64 bits!");
 	}
 
 	HandleType operator+(ptrdiff_t rhs) const
@@ -113,7 +103,7 @@
 
 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) \
 	typedef struct object##_T *object##Ptr; \
-	typedef VkWrapper<object##Ptr> object;
+	typedef VkNonDispatchableHandle<object##Ptr> object;
 
 #include <vulkan/vulkan.h>
 
diff --git a/tests/VulkanUnitTests/Driver.cpp b/tests/VulkanUnitTests/Driver.cpp
index c53f1f7..440ea8e 100644
--- a/tests/VulkanUnitTests/Driver.cpp
+++ b/tests/VulkanUnitTests/Driver.cpp
@@ -14,7 +14,7 @@
 
 #include "Driver.hpp"
 
-#if defined(_WIN64)
+#if defined(_WIN32)
 #    include "Windows.h"
 #    define OS_WINDOWS 1
 #elif defined(__APPLE__)
