microsoft / krabsetw

KrabsETW provides a modern C++ wrapper and a .NET wrapper around the low-level ETW trace consumption functions.
Other
605 stars 149 forks source link

Does not compile with /permissive- #42

Closed jrave closed 6 years ago

jrave commented 6 years ago

Latest versions of VS2017 have /permissive- as the default setting but unfortunately krabsetw does not compile with it enabled:

1>c:\users\<foobar>\documents\visual studio 2017\projects\krabstesting\packages\krabsetw.1.0.11\lib\native\include\krabs\filtering\comparers.hpp(100): error C2760: syntax error: unexpected token '}', expected ';'

1>c:\users\<foobar>\documents\visual studio 2017\projects\krabstesting\packages\krabsetw.1.0.11\lib\native\include\krabs\filtering\comparers.hpp(101): note: see reference to class template instantiation 'krabs::predicates::comparers::iequal_to<T>' being compiled

Used versions: krabsetw: 1.0.11 nuget package VS 2017 15.6.5

zacbrown commented 6 years ago

Hi,

Thanks for the bug! While I can fix this relatively easy issue, it looks like the Windows SDK combaseapi.h header isn't /permissive- compliant either with the Windows 8.1 SDK:

1>c:\program files (x86)\windows kits\8.1\include\um\combaseapi.h(229): error C2760: syntax error: unexpected token 'identifier', expected 'type specifier'

Unfortunately, moving to the Windows 10 SDK appears non-trivial generating a large number of errors. We'd happily accept a patch for this issue if you have the time and inclination to work on it.

Otherwise, this will be either pulled off the backlog when either an OSS contributor (mainly me) or an MSFT employee has time to fix the issue. I can't speak to when MSFT might come around to this fix.

jrave commented 6 years ago

Not entirely sure where you saw the large number of errors when switching to latest Windows 10 SDK. So had a quick look and made a PR at #43 . That one at least builds the examples and native tests cleanly.