MSVC fix build

Generated macro definitions with CMAKE and used them to mark non-inline
public methods of core subsystems. Now the project is able to compile.