title: Employing elegance in order to evade importing elephants: a case of excessive dll Imports
body: <p>I am writing C# code that interfaces to a legacy (Feb 2012) C program, using DllImport.   It works fine, but I need to call more than 30 different functions, turning my normally impeccable, exquisite code into something of near-elephantine proportions.  Surely there must be a way around this?  [Warning: those with weak stomachs may want to avert their eyes from what follows]:</p>
  
  <pre><code>    [DllImport("C:\\Users\\mitt\\Documents\\Visual Studio 2010\\Projects\\mrSolution\\mr\\x64\\Debug\\mrDll.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
      public static extern bool mrEngine_initialize(     [In, Out, MarshalAs(UnmanagedType.LPStruct)] PLOT_SPEC PlotSpec);
      [DllImport("C:\\Users\\mitt\\Documents\\Visual Studio 2010\\Projects\\mrSolution\\mr\\x64\\Debug\\mrDll.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
      public static extern bool mrEngine_getDataPoint(   [In, Out, MarshalAs(UnmanagedType.LPStruct)] PLOT_SPEC PlotSpec);
  </code></pre>