gpt4 book ai didi

c - 如何在没有 __uuidof 的情况下从 C 调用 DXGI

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:33 25 4
gpt4 key购买 nike

我不确定如何在没有仅限 C++ 的 __uuidof 运算符的情况下获取 DXGI GUID。整个 MSDN 代码都使用了它。我也不确定在 C 中调用 OO Windows API 的语法。

我已经在 MSDN 和此处进行了检查,但一无所获。

#ifdef __cplusplus
CreateDXGIFactory(__uuidof(IDXGIFactory), (void **)&factory);
factory->EnumAdapters(0, &adapter);
adapter->EnumOutputs(0, &output);
#else // C version, not correct AFAIK
?? CreateDXGIFactory(&IID_IDXGIFactory, (void **)&factory);
?? IDXGI_EnumAdapters(factory, 0, &adapter);
?? IDXGI_EnumOutputs(adapter, 0, &output);
#endif

第一个有效,但 C 版本因 Unresolved DXGI 相关外部(EnumAdapters 和 EnumOutputs 以及 IID_DXGIFactory)而失败。

最佳答案

这应该没问题:

#define COBJMACROS
#include <dxgi.h>

void test()
{
IDXGIFactory* factory;
if (SUCCEEDED(CreateDXGIFactory(&IID_IDXGIFactory, (void**) &factory)))
{
IDXGIAdapter* adapter;
if (SUCCEEDED(IDXGIFactory_EnumAdapters(factory, 0, &adapter)))
{
// ...
}
}
}

关于c - 如何在没有 __uuidof 的情况下从 C 调用 DXGI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57223294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com