E_NOINTERFACE when calling CreateDXGIFactory1



一般来说,我对C++相对陌生,对Windows开发也非常陌生。

我正在编写一个使用DXGI库的程序,它编译得很好,但当我运行可执行文件时,CreateDXGIFactory1的HRESULT显示为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 successn");
  } else {
    printf("ERROR: 0x%Xn", hCreateFactory);
  }

您正在传递一个随机的、新创建的GUID。这毫无意义。您应该传递想要获得的接口的IID,即__uuidof(IDXGIFactory1)。文档中的示例说明了这一点。

相关内容

  • 没有找到相关文章

最新更新