C++20 and WDF

Hi,
I am facing following errors in all the source files when trying to compile SensorsComboDriver for C++20.
1>C:\Windows-driver-samples\sensors\SensorsComboDriver\Clients.h(162,1): error C2440: ‘initializing’: cannot convert from ‘const char [12]’ to ‘PCHAR’
1>C:\Windows-driver-samples\sensors\SensorsComboDriver\Clients.h(162,1): message : Conversion from string literal loses const qualifier (see /Zc:strictStrings)

Here is what I have tried doing:

  • Open SensorsComboDriver from windows-driver-samples.
  • Successfully built the project.
  • Now change the C++ language standard from default to C++20.
  • Observed the above issues.

Looking at the other OSR posts, I got to know that C++20 is supported in KMDF except STLs and exceptions.
In that case, I was wondering why I am getting the above errors.
Are there any other unsupported features of C++20 that are causing the above issues?

Thanks in advance for the help.
Chandra

PCHAR is not const. Not sure whether PCCHAR is a thing, but the const → non-const conversion is why it’s failing.

Agreed. But the issue happens only with C++20.
The issue is with WDF_DECLARE_CONTEXT_TYPE_WITH_NAME which is a standard WDF macro.
That’s why I am concerned if C++20 is supported with WDF.

Found out the solution for the problem.

Right click on the project → Properties → C/C++ → Command Line → Add "/Zc:strictStrings- " to the Additional Options.

That’s a great hint. I appreciate the followup.

@ChandraTutika said:
Agreed. But the issue happens only with C++20.
The issue is with WDF_DECLARE_CONTEXT_TYPE_WITH_NAME which is a standard WDF macro.
That’s why I am concerned if C++20 is supported with WDF.

Hi guys
It’s crucial to check whether C++20 is fully supported by WDF, particularly in light of the fact that the problem only affects the WDF macro WDF_DECLARE_CONTEXT_TYPE_WITH_NAME.