microsoft / microsoft/wil

Build errors with VS2015 and 1.0.210204.1 of Microsoft.Windows.ImplementationLibrary

Open
#207 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
3k
Forks
300
Avg merge
19h 12m
Merged PRs (30d)
1

Description

struct wil::details::ResultStatus won't compile on VS2015. A default constructor and one that takes (const HRESULT, const NTSTATUS, bool) must be provided in order for it to compile. Changes, added to ...\include\wil\result_macros.h, after line 1224:

		ResultStatus ()
		{
			hr = S_OK;
			status = STATUS_SUCCESS;
			isNtStatus = false;
		}

		ResultStatus (const HRESULT _hr, const NTSTATUS _status, bool _isNtStatus)
		{
			hr = _hr;
			status = _status;
			isNtStatus = _isNtStatus;
		}

template struct wil::details_abi::ThreadLocalStorage::Node won't compile on VS2015. I had to add a constructor that takes a DWORD to get it to compile. Changes, added to ...\include\wil\result.h, after line 430:

			Node (DWORD _threadId)
			{
				threadId = _threadId;
				pNext = nullptr;
			}

With the above changes I was able to use the Microsoft.Windows.ImplementationLibrary.

Visual Studio 2015 does not support the newer C++19 style-syntax.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in include/wil/result_macros.h around line 1224 and include/wil/result.h around line 430, where the VS2015 compilation failures are reported. Reproduce the build with Visual Studio 2015 and compare the affected ResultStatus and ThreadLocalStorage::Node definitions with the constructors described in the issue. Done means the Microsoft.Windows.ImplementationLibrary compiles successfully on VS2015.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.