我对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 success\n");
} else {
printf("ERROR: 0x%X\n", hCreateFactory);
}
答案 0 :(得分:0)
您正在传递一个随机的,新创建的GUID。这毫无意义。您应该传递您希望获得的接口的IID,即__uuidof(IDXGIFactory1)
。 documentation中的示例显示了这一点。