我想用 C 改变主音量,但是__uuidof
仅适用于 C++;我可以用什么来代替它?
const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
hr = CoCreateInstance(
CLSID_MMDeviceEnumerator, NULL,
CLSCTX_ALL, IID_IMMDeviceEnumerator,
(void**)&deviceEnumerator);
我只发现:C 中 __uuidof 的替代方案 https://stackoverflow.com/questions/8868784/alternative-to-uuidof-in-c
CLSID_MMDeviceEnumerator
and IID_IMMDeviceEnumerator
被定义在 API 的头文件中 https://msdn.microsoft.com/en-us/library/windows/desktop/dd371399(v=vs.85).aspx, i.e. <mmdeviceapi.h>
.
您必须在 C 代码中使用这些定义,而不是__uuidof
,因为这仅适用于 C++ 代码。
请注意,您需要包括<initguid.h>
before <mmdeviceapi.h>
:
#include <initguid.h>
#include <mmdeviceapi.h>
那么这段代码应该可以工作:
hr = CoCreateInstance(
&CLSID_MMDeviceEnumerator, (*)
NULL,
CLSCTX_ALL,
&IID_IMMDeviceEnumerator, (*)
(void**)&deviceEnumerator
);
(*)
请注意,我已经使用了&
(address-of),因为在 C++ 中你有引用,但在 C 代码中你需要显式地使用指针。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)