title: Dumpbin shows strange method name (generating exporting function in MS Visual C++)
body: <p>I have created new Win32 project in my VS and have selected Dynamic Library ( *.dll ) for this aim.</p>
  
  <p>I have defined some exporting function in the main file:</p>
  
  <pre><code>__declspec(dllexport)
  int TestCall(void)
  {
      int value = 4 / 2;
      std::cout &lt;&lt; typeid(value).name() &lt;&lt; std::endl;
      return value;
  }
  
  __declspec(dllexport)
  void SwapMe(int *first, int *second)
  {
      int tmp = *first;
      *first = *second;
      *second = tmp;
  }
  </code></pre>
  
  <p>When I've looked at the dumpin /exports, I've got:</p>
  
  <pre><code>ordinal hint RVA      name
  
        1    0 00001010 ?SwapMe@@YAXPEAH0@Z
        2    1 00001270 ?TestCall@@YAHXZ
  </code></pre>
  
  <p>I'm calling in the C# version like this:</p>
  
  <pre><code>[DllImport(@"lib1.dll", EntryPoint = "?TestCall@@YAHXZ",
  CallingConvention = CallingConvention.Cdecl)]
  static extern int TestCall();
  </code></pre>
  
  <p>It's not the correct form of using exported methods. Where did I fail with generating such names for exporting-methods in the C++ dll project?</p>