在 VS 2010 中链接 WASAPI

Mat*_*ttD 2 c++ audio visual-studio-2010 wasapi

我正在使用 Visual Studio 2010 并包含以下标头:

#include <Audioclient.h>
#include <mmdeviceapi.h>
Run Code Online (Sandbox Code Playgroud)

除其他外,参考这些功能:

CoCreateInstance
IMMDeviceEnumerator::GetDefaultAudioEndpoint
IMMDevice::Activate
Run Code Online (Sandbox Code Playgroud)

我已经链接了 winmm.lib,但我收到了这样的错误:

Error   8   error LNK2001: unresolved external symbol _IID_IMMDeviceEnumerator  C:\XXXX\XXXX\XXXX.obj   XXXX
Run Code Online (Sandbox Code Playgroud)

我需要链接什么 .lib 文件才能使用这些函数?是否有关于如何在 VS 2010 中找到与 .h 文件关联的 .lib 的任何指导?

我正在查看来自 MSDN 的一些示例代码,但找不到需要链接的库。

Mat*_*ttD 5

来自克里斯。我从这里更改了代码:

hr = CoCreateInstance(
    CLSID_MMDeviceEnumerator, NULL,
    CLSCTX_ALL, IID_IMMDeviceEnumerator,
    (void**)&pEnumerator);
Run Code Online (Sandbox Code Playgroud)

对此:

hr = CoCreateInstance(
         __uuidof(MMDeviceEnumerator), NULL,
         CLSCTX_INPROC_SERVER,
         __uuidof(IMMDeviceEnumerator),
         (void**)&pEnumerator);
Run Code Online (Sandbox Code Playgroud)

现在它链接了!

  • CLSCTX_ALL 实际上应该没问题。 (2认同)