E_NOINTERFACE при вызове CreateDXGIFactory1

Я относительно новичок в C ++ в целом, и очень новичок в разработке Windows.

Я пишу программу, которая использует библиотеку DXGI — она ​​прекрасно компилируется, но когда я запускаю исполняемый файл, HRESULT из CreateDXGIFactory1 выходит как 0x80004002 или E_NOINTERFACE.

Я скучаю по какой-то библиотеке, или здесь есть более глубокая проблема?

Код, который я использую, следующий:

Выход «Ошибка: 0x80004002».

  //Initialize a UUID
GUID uuid;
HRESULT hCreateUUID = CoCreateGuid(&uuid);

//Convert the UUID to string
LPOLESTR stringUUID;
HRESULT hStringToUUID = StringFromCLSID(uuid, &stringUUID);

//Initialize the factory pointer
IDXGIFactory1* pFactory;

//Actually create it
HRESULT hCreateFactory = CreateDXGIFactory1(uuid, (void**)(&pFactory));
if (hCreateFactory == S_OK) {
printf("Factory creation was a success\n");
} else {
printf("ERROR: 0x%X\n", hCreateFactory);
}

0

Решение

Вы передаете случайный, недавно созданный GUID. Это не имеет никакого смысла. Вы должны передать IID интерфейса, который хотите получить, а именно: __uuidof(IDXGIFactory1), Пример в документация показывает только это.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]