class_docstr: Concrete class that implements an interface to Microsoft Visual C++,
  as defined by the CCompiler abstract class.
code: def initialize(self):
      self.__paths = []
      if (
          "DISTUTILS_USE_SDK" in os.environ
          and "MSSdk" in os.environ
          and self.find_exe("cl.exe")
      ):
          # Assume that the SDK set up everything alright; don't try to be
          # smarter
          self.cc = "cl.exe"
          self.linker = "link.exe"
          self.lib = "lib.exe"
          self.rc = "rc.exe"
          self.mc = "mc.exe"
      else:
          self.__paths = self.get_msvc_paths("path")
  
          if len(self.__paths) == 0:
              raise DistutilsPlatformError(
                  "Python was built with %s, "
                  "and extensions need to be built with the same "
                  "version of the compiler, but it isn't installed."
                  % self.__product
              )
  
          self.cc = self.find_exe("cl.exe")
          self.linker = self.find_exe("link.exe")
          self.lib = self.find_exe("lib.exe")
          self.rc = self.find_exe("rc.exe")  # resource compiler
          self.mc = self.find_exe("mc.exe")  # message compiler
          self.set_path_env_var("lib")
          self.set_path_env_var("include")
  
      # extend the MSVC path with the current path
      try:
          for p in os.environ["path"].split(";"):
              self.__paths.append(p)
      except KeyError:
          pass
      self.__paths = normalize_and_reduce_paths(self.__paths)
      os.environ["path"] = ";".join(self.__paths)
  
      self.preprocess_options = None
      if self.__arch == "Intel":
          self.compile_options = [
              "/nologo",
              "/Ox",
              "/MD",
              "/W3",
              "/GX",
              "/DNDEBUG",
          ]
          self.compile_options_debug = [
              "/nologo",
              "/Od",
              "/MDd",
              "/W3",
              "/GX",
              "/Z7",
              "/D_DEBUG",
          ]
      else:
          # Win64
          self.compile_options = [
              "/nologo",
              "/Ox",
              "/MD",
              "/W3",
              "/GS-",
              "/DNDEBUG",
          ]
          self.compile_options_debug = [
              "/nologo",
              "/Od",
              "/MDd",
              "/W3",
              "/GS-",
              "/Z7",
              "/D_DEBUG",
          ]
  
      self.ldflags_shared = ["/DLL", "/nologo", "/INCREMENTAL:NO"]
      if self.__version >= 7:
          self.ldflags_shared_debug = [
              "/DLL",
              "/nologo",
              "/INCREMENTAL:no",
              "/DEBUG",
          ]
      else:
          self.ldflags_shared_debug = [
              "/DLL",
              "/nologo",
              "/INCREMENTAL:no",
              "/pdb:None",
              "/DEBUG",
          ]
      self.ldflags_static = ["/nologo"]
  
      self.initialized = True
  
imports: import sys, os
  from distutils.errors import DistutilsExecError, DistutilsPlatformError, CompileError, LibError, LinkError
  from distutils.ccompiler import CCompiler, gen_lib_options
  from distutils import log
label_desc: Use image node_id 2 for calling the MSVCCompiler obj's underlying member method code with example usage: obj.initialize() without return types