在我的课堂上,我声明了一个名为PlaySound(std::wstring)
. 此类位于其自己的命名空间中。当我试图从其他地方的此类的实例中调用此成员函数时,它会导致链接器错误,因为由于某种原因它似乎试图PlaySoundW()
在MMSystem.h
. 我认为在我自己的命名空间中有东西是为了防止这种冲突?
链接器错误:
Error 13 error LNK2019: unresolved external symbol "public: void __thiscall MyNamespace::SoundProcessor::PlaySoundW(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >)" (?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)
我能理解的最好的一点是,它似乎在抱怨我PlaySoundW()
在我的代码中使用,但我没有在我的SoundProcessor
课堂上定义它。我的函数没有被调用PlaySoundW()
。
因此,我正在调用我的函数(并且在与声明函数的名称空间相同的名称空间内):
soundProcessor.PlaySound(TEXT("Sounds\\MySound.WAV"));
我希望这只是我错过的显而易见的事情。