เช่นเดียวกับในชื่อเรื่อง ฉันได้รับรหัสข้อผิดพลาดที่ไม่ได้อยู่ในเอกสารของ CoCreateInstance รหัสข้อผิดพลาดเฉพาะคือ 0x800401F0
หมายเหตุ: ฉันยังใหม่กับ C ++ และเขียนโปรแกรมในระดับนี้โดยทั่วไป พยายามเรียนรู้ด้วยการสร้างเครื่องมือสร้างภาพและเสียง
#include <stdio.h>
#include <Mmdeviceapi.h>
int CALLBACK WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
const CLSID rclsid = __uuidof(MMDeviceEnumerator);
const IID riid = __uuidof(IMMDeviceEnumerator);
IMMDeviceEnumerator* pEnumerator;
IMMDeviceCollection* pEndpoints;
// Create a device enumerator
HRESULT hr = CoCreateInstance(
rclsid,
NULL,
CLSCTX_ALL,
riid,
reinterpret_cast<void **>(&pEnumerator)
);
if (FAILED(hr)) {
printf("%x\n", hr);
}
// Create a collection of endpoints
// pEnumerator->EnumAudioEndpoints(
// eCapture,
// DEVICE_STATE_ACTIVE,
// &pEndpoints
// );
// UINT deviceCount;
// pEndpoints->GetCount(&deviceCount);
// printf("%u\n", deviceCount);
return 0;
}
การรวบรวม gcc audio.cpp -lole32
ฉันใช้เครื่อง 64 บิต ไม่แน่ใจว่านั่นอาจเป็นส่วนหนึ่งของปัญหาหรือไม่ มีข้อเสนอแนะอะไรบ้าง?