title: Unmangle C++ DLL Function Names
body: <p>I have a dll which exports 3 function:</p>
  
  <h3>.h file</h3>
  
  <pre><code>extern "C"
  {
  __declspec(dllexport) BOOLEAN __stdcall InitializeChangeNotify(void);
  __declspec(dllexport) BOOLEAN __stdcall PasswordFilter(LPCWSTR AccountName,LPCWSTR FullName,LPCWSTR Password,BOOLEAN SetOperation);
  __declspec(dllexport) NTSTATUS __stdcall PasswordChangeNotify(LPCWSTR UserName,ULONG RelativeId,LPCWSTR NewPassword);
  }
  </code></pre>
  
  <h3>.c file</h3>
  
  <pre><code>extern "C"
  {
      __declspec(dllexport) BOOLEAN __stdcall InitializeChangeNotify(void)
  {
      writeToLog("InitializeChangeNotify()");
      return TRUE;
  }
  
  __declspec(dllexport) BOOLEAN __stdcall PasswordFilter(LPCWSTR AccountName,LPCWSTR FullName,LPCWSTR Password,BOOLEAN SetOperation)
  {
      writeToLog("PasswordFilter()");
      return TRUE;
  }
  
  __declspec(dllexport) NTSTATUS __stdcall PasswordChangeNotify(LPCWSTR UserName,ULONG RelativeId,LPCWSTR NewPassword)
  {
      writeToLog("PasswordChangeNotify()");
      return 0;
  }
  }
  </code></pre>
  
  <p>i compile in VS 2010.</p>
  
  <p>I see the function names in depends like: <code>_InitializeChangeNotify@0, _PasswordChangeNotify@12</code>. How do I unmangle the functions? </p>