我有使用直接声音的C ++ / CLI控制台应用程序。我不确定directsound是否是一个问题,但在Windows 10更新应用程序挂起之后甚至启动。要重现此问题,请创建C ++ / CLI控制台应用程序,将其链接到dsound.lib并将此代码复制粘贴到主文件中。一旦注释了DirectSoundEnumerate,您就会注意到它会挂起。
#include "stdafx.h"
#include <vector>
#include <Windows.h>
#include <dsound.h>
using namespace System;
using namespace System::Collections::Generic;
static BOOL CALLBACK DSEnumOutputProc(LPGUID lpGUID,
LPCWSTR lpszDesc,
LPCWSTR lpszDrvName,
LPVOID lpContext)
{
return(TRUE);
}
void EnumerateDirectSoundDevices()
{
if (SUCCEEDED(DirectSoundEnumerate(&DSEnumOutputProc, LPVOID(NULL))))
{
printf("output devices enumerated.\n");
}
}
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");
return 0;
}