Fixes: Fixed Visual Studio warnings during compilation.

Changes to properly detect proper Visual Studio and fix build warnings.
diff --git a/include/vulkan/vk_sdk_platform.h b/include/vulkan/vk_sdk_platform.h
index d5e31a8..34b5016 100755
--- a/include/vulkan/vk_sdk_platform.h
+++ b/include/vulkan/vk_sdk_platform.h
@@ -35,12 +35,16 @@
 #    define inline __inline
 #  endif // __cplusplus
 
+#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/)
 // C99:
 // Microsoft didn't implement C99 in Visual Studio; but started adding it with
 // VS2013.  However, VS2013 still didn't have snprintf().  The following is a
 // work-around (Note: The _CRT_SECURE_NO_WARNINGS macro must be set in the
 // "CMakeLists.txt" file).
+// NOTE: This is fixed in Visual Studio 2015.
 #define snprintf _snprintf
+#endif 
+
 #define strdup _strdup
 
 #endif // _WIN32
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 04997ca..46215e8 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -4259,7 +4259,7 @@
         pCB->lastVtxBinding = firstBinding + bindingCount - 1;
         updateResourceTracking(pCB, firstBinding, bindingCount, pBuffers);
     } else {
-            skipCall |= report_error_no_cb_begin(dev_data, commandBuffer, "vkCmdBindVertexBuffer()");
+        skipCall |= report_error_no_cb_begin(dev_data, commandBuffer, "vkCmdBindVertexBuffer()");
     }
     if (VK_FALSE == skipCall)
         dev_data->device_dispatch_table->CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index b88d9ce..03038a9 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -466,7 +466,7 @@
     my_data->memObjMap[mem].valid           = false;
 }
 
-static bool validate_memory_is_valid(layer_data *my_data, VkDeviceMemory mem, VkImage image = VK_NULL_HANDLE) {
+static VkBool32 validate_memory_is_valid(layer_data *my_data, VkDeviceMemory mem, VkImage image = VK_NULL_HANDLE) {
     if (mem == MEMTRACKER_SWAP_CHAIN_IMAGE_KEY) {
         MT_OBJ_BINDING_INFO* pBindInfo = get_object_binding_info(my_data, reinterpret_cast<uint64_t>(image), VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT);
         if (pBindInfo && !pBindInfo->valid) {
@@ -2325,8 +2325,8 @@
     const VkDeviceSize *pOffsets)
 {
     layer_data *my_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map);
-    bool skip_call = false;
-    for (int i = 0; i < bindingCount; ++i) {
+    VkBool32 skip_call = false;
+    for (uint32_t i = 0; i < bindingCount; ++i) {
         VkDeviceMemory mem;
         skip_call |= get_mem_binding_from_object(my_data, commandBuffer, reinterpret_cast<uint64_t>(pBuffers[i]),
             VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, &mem);
@@ -2345,7 +2345,7 @@
 {
     layer_data *my_data = get_my_data_ptr(get_dispatch_key(commandBuffer), layer_data_map);
     VkDeviceMemory mem;
-    bool skip_call = get_mem_binding_from_object(my_data, commandBuffer, reinterpret_cast<uint64_t>(buffer), VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, &mem);
+    VkBool32 skip_call = get_mem_binding_from_object(my_data, commandBuffer, reinterpret_cast<uint64_t>(buffer), VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, &mem);
     skip_call |= validate_memory_is_valid(my_data, mem);
     // TODO : Somewhere need to verify that IBs have correct usage state flagged
     if (!skip_call)
@@ -2875,9 +2875,9 @@
 {
     VkResult result = VK_ERROR_VALIDATION_FAILED_EXT;
     layer_data *my_data = get_my_data_ptr(get_dispatch_key(queue), layer_data_map);
-    bool skip_call = false;
+    VkBool32 skip_call = false;
     VkDeviceMemory mem;
-    for (int i = 0; i < pPresentInfo->swapchainCount; ++i) {
+    for (uint32_t i = 0; i < pPresentInfo->swapchainCount; ++i) {
         MT_SWAP_CHAIN_INFO *pInfo = my_data->swapchainMap[pPresentInfo->pSwapchains[i]];
         VkImage image = pInfo->images[pPresentInfo->pImageIndices[i]];
         skip_call |= get_mem_binding_from_object(my_data, queue, reinterpret_cast<uint64_t>(image), VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, &mem);
@@ -2928,7 +2928,7 @@
 {
     layer_data *my_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map);
     VkResult result = my_data->device_dispatch_table->CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
-    for (int i = 0; i < pCreateInfo->attachmentCount; ++i) {
+    for (uint32_t i = 0; i < pCreateInfo->attachmentCount; ++i) {
         VkImageView view = pCreateInfo->pAttachments[i];
         loader_platform_thread_lock_mutex(&globalLock);
         auto view_data = my_data->imageViewMap.find(view);
@@ -2970,7 +2970,7 @@
 {
     layer_data *my_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map);
     VkResult result = my_data->device_dispatch_table->CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
-    for (int i = 0; i < pCreateInfo->attachmentCount; ++i) {
+    for (uint32_t i = 0; i < pCreateInfo->attachmentCount; ++i) {
         VkAttachmentDescription desc = pCreateInfo->pAttachments[i];
         MT_PASS_ATTACHMENT_INFO pass_info;
         pass_info.load_op = desc.loadOp;
@@ -3016,7 +3016,7 @@
     VkSubpassContents contents)
 {
     layer_data *my_data = get_my_data_ptr(get_dispatch_key(cmdBuffer), layer_data_map);
-    bool skip_call = false;
+    VkBool32 skip_call = false;
     if (pRenderPassBegin) {
         loader_platform_thread_lock_mutex(&globalLock);
         auto pass_data = my_data->passMap.find(pRenderPassBegin->renderPass);
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 67c18e7..b481723 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -974,7 +974,7 @@
     err = vkCreatePipelineLayout(m_device->device(), &pipeline_layout_ci, NULL, &pipeline_layout);
     ASSERT_VK_SUCCESS(err);
 
-    VkPipeline badPipeline = (VkPipeline)0xbaadb1be;
+    VkPipeline badPipeline = (VkPipeline)((size_t)0xbaadb1be);
 
     BeginCommandBuffer();
     vkCmdBindPipeline(m_commandBuffer->GetBufferHandle(), VK_PIPELINE_BIND_POINT_GRAPHICS, badPipeline);
@@ -1736,7 +1736,7 @@
     err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
     ASSERT_VK_SUCCESS(err);
 
-    VkBufferView view = (VkBufferView) 0xbaadbeef; // invalid bufferView object
+    VkBufferView view = (VkBufferView)((size_t)0xbaadbeef); // invalid bufferView object
     VkWriteDescriptorSet descriptor_write;
     memset(&descriptor_write, 0, sizeof(descriptor_write));
     descriptor_write.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
@@ -2175,7 +2175,7 @@
     // verify_set_layout_compatibility fail cases:
     // 1. invalid VkPipelineLayout (layout) passed into vkCmdBindDescriptorSets
     m_errorMonitor->SetDesiredFailureMsg(VK_DEBUG_REPORT_ERROR_BIT_EXT, " due to: invalid VkPipelineLayout ");
-    vkCmdBindDescriptorSets(m_commandBuffer->GetBufferHandle(), VK_PIPELINE_BIND_POINT_GRAPHICS, (VkPipelineLayout)0xbaadb1be, 0, 1, &descriptorSet[0], 0, NULL);
+    vkCmdBindDescriptorSets(m_commandBuffer->GetBufferHandle(), VK_PIPELINE_BIND_POINT_GRAPHICS, (VkPipelineLayout)((size_t)0xbaadb1be), 0, 1, &descriptorSet[0], 0, NULL);
     if (!m_errorMonitor->DesiredMsgFound()) {
         FAIL() << "Did not receive correct error msg when attempting to bind descriptorSets with invalid VkPipelineLayout.";
         m_errorMonitor->DumpFailureMsgs();
@@ -2294,8 +2294,8 @@
     cmd_buf_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
     cmd_buf_info.pNext = NULL;
     cmd_buf_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
-    cmd_buf_info.renderPass = (VkRenderPass)0xcadecade;
-    cmd_buf_info.framebuffer = (VkFramebuffer)0xcadecade;
+    cmd_buf_info.renderPass = (VkRenderPass)((size_t)0xcadecade);
+    cmd_buf_info.framebuffer = (VkFramebuffer)((size_t)0xcadecade);
 
 
     // The error should be caught by validation of the BeginCommandBuffer call
@@ -3868,7 +3868,7 @@
     err = vkAllocateDescriptorSets(m_device->device(), &alloc_info, &descriptorSet);
     ASSERT_VK_SUCCESS(err);
 
-    VkSampler sampler = (VkSampler) 0xbaadbeef; // Sampler with invalid handle
+    VkSampler sampler = (VkSampler)((size_t)0xbaadbeef); // Sampler with invalid handle
 
     VkDescriptorImageInfo descriptor_info;
     memset(&descriptor_info, 0, sizeof(VkDescriptorImageInfo));
@@ -3966,7 +3966,7 @@
     err = vkCreateSampler(m_device->device(), &sampler_ci, NULL, &sampler);
     ASSERT_VK_SUCCESS(err);
 
-    VkImageView view = (VkImageView) 0xbaadbeef; // invalid imageView object
+    VkImageView view = (VkImageView)((size_t)0xbaadbeef); // invalid imageView object
 
     VkDescriptorImageInfo descriptor_info;
     memset(&descriptor_info, 0, sizeof(VkDescriptorImageInfo));