winsiderss / systeminformer

A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ http://www.windows-internals.com
https://systeminformer.sourceforge.io
MIT License
10.53k stars 1.36k forks source link

Build breakage on Visual Studio 2022 17.10.3 #2113

Closed robertroessler closed 1 week ago

robertroessler commented 1 week ago

Brief description of your issue

I do semi-regular "pulls" from github for System Informer. Since (at least) June 23, and with a total of 3 pulls since then, VS 2022 has had simple compile failures:

...\systeminformer\SystemInformer\sysscmem.c line 1058 VS wants kernelFileName to be initialized, since it can't tell that it was presumably set in the call above to PhGetKernelFileNameEx() C:\usr\Play\systeminformer\SystemInformer\thrdprv.c line 342 VS wants fileName to be initialized, since it can't tell that it was presumably set in the call above to PhGetKernelFileNameEx()

You might think this should only be a warning, but it will NOT go away if you say to not promote warnings into errors - aside from changing the source and initing these vars to nullprtr, I made the build complete by disabling the so-called "SDL" check.

EDIT: In case this wasn't clear, I mean to say that either the simple source edit(s) will work or changing the "SDL" VS project option to "false" will work - whichever approach you take, you will get clean builds.

Steps to reproduce (optional)

No response

Expected behavior (optional)

No response

Actual behavior (optional)

No response

Environment (optional)

Local builds of System Informer based on "latest" github sources.
Windows 11 [Insiders] 24H2 prelease (really).
Visual Studio 2022 17.10.3
trparky commented 1 week ago

Do a pull of the new code, execute build_clean.cmd, and it should work. I had the same issue and it resolved itself in a recent commit.

robertroessler commented 1 week ago

Cool, thanks, you are certainly correct - but I don't understand why.

The source is the source (nothing had changed since my last pull), and the compiler hasn't changed - so why is it now unconcerned with those 2 lines in those 2 files after just removing all build artifacts and re-executing the same VS solution and project files?

In any case, thanks again.

dmex commented 6 days ago

@robertroessler This has been an issue with MSVC for a long time: https://stackoverflow.com/questions/17703004/visual-studio-displaying-errors-even-if-projects-build

why is it now unconcerned with those 2 lines in those 2 files after just removing all build artifacts and re-executing the same VS solution and project files?

Disable the /INCREMENTAL option has NO otherwise MSVC doesn't always detect changes and compiles broken code. You need to disable it under Project properties > Linker:

image