title: Member function called PlaySound() causes linker error when called
body: <p>In my class, I have a function declared called <code>PlaySound(std::wstring)</code>.  This class resides within its own namespace.  When I am attempting to call this member function from an instance of this class elsewhere, it is causing linker errors because for some reason it appears to be trying to call <code>PlaySoundW()</code> defined in <code>MMSystem.h</code>.  I thought having things in my own namespace was intended to prevent these sort of conflicts?</p>
  
  <p>The linker error:</p>
  
  <pre><code>Error   13  error LNK2019: unresolved external symbol "public: void __thiscall MyNamespace::SoundProcessor::PlaySoundW(class std::basic_string&lt;wchar_t,struct std::char_traits&lt;wchar_t&gt;,class std::allocator&lt;wchar_t&gt; &gt;)" (?PlaySoundW@SoundProcessor@MyNamespace@@QAEXV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z) referenced in function "public: void __thiscall MyNamespace::Engine::Init(struct HWND__ *,long *,long *,int)" (?Init@Engine@MyNamespace@@QAEXPAUHWND__@@PAJ1H@Z)
  </code></pre>
  
  <p>The best I can understand this, is that it seems to be complaining that I'm using <code>PlaySoundW()</code> in my code, but that I've not defined it in my <code>SoundProcessor</code> class.  My function is not called <code>PlaySoundW()</code>.</p>
  
  <p>I am calling my function thusly (AND from within the same namespace as the one the function is declared in):</p>
  
  <p><code>soundProcessor.PlaySound(TEXT("Sounds\\MySound.WAV"));</code></p>
  
  <p>I'm hoping this is just something obvious I've missed.</p>