Enhanced Input is the newer way, and much easier to manage:
Basically: As you point out it all runs thru the PlayerController. It uses basic data assets for setting up an input: Input Actions and Input Mapping Context. Input Action is what type of action it is (button press, analog stick). You assign Input Actions in an Input Mapping Context to the button/key/stick inputs similar to the old system. You then add and remove this Input Mapping Context using the PlayerController->AddMappingContext and RemoveMappingContext, wherever you need them. So you can add when picking up a gun, and remove when dropping the gun for instance.
As to blueprint/c++ this video is a great explainer (also check his other unreal vids out, top notch):
Blueprints are basically extended from c++, and use similar inheritance.
The compile errors may be from not being able to download the vulnerability definition packages. I get this sometimes when I don’t have internet access on my build machine. I haven’t found a way to suppress them though