0
Рассмотрим эту программу:IAudioEndpointVolume не имеет ни одного члена с именем GetMasterVolumeLevelScalar
#include <stdio.h>
#include <windows.h>
#include <mmdeviceapi.h>
#include <endpointvolume.h>
#include <math.h>
int main() {
IAudioEndpointVolume *wh;
IMMDevice *ya;
IMMDeviceEnumerator *xr;
CoInitialize(0);
CoCreateInstance(__uuidof(MMDeviceEnumerator), 0, CLSCTX_INPROC_SERVER,
__uuidof(IMMDeviceEnumerator), (void**)&xr);
xr->GetDefaultAudioEndpoint(eRender, eConsole, &ya);
ya->Activate(__uuidof(IAudioEndpointVolume), CLSCTX_ALL, 0, (void**)&wh);
float zu;
wh->GetMasterVolumeLevelScalar(&zu);
printf("%d\n", (int) round(100 * zu));
}
Я могу компилировать как C++, без выпуска:
x86_64-w64-mingw32-g++ vol.cpp -lole32
Однако, если я пытаюсь скомпилировать его как C:
x86_64-w64-mingw32-gcc vol.c -lole32
Я получаю такие ошибки, как:
error: ‘IAudioEndpointVolume’ has no member named ‘GetMasterVolumeLevelScalar’
Эта программа, похоже, не особенно «C++», так что вызывает проблему ? Кроме того, могу ли я что-то изменить, чтобы он компилировался как C?