简短版本:
未使用 wineg++ 声明。有替代品吗IID_PPV_ARGS()
长版:
我正在尝试用imgui制作一个DX11 GUI。但是,我使用的是 Linux,并且没有足够的 RAM 来拥有运行 Windows 的可靠虚拟机,因此我使用 wineg++ 在我的系统上编译代码。
imgui 提供了一些用于不同框架创建 GUI 的示例,其中包括带有 SDL2 或 WIN32 的 DX11。我尝试编译 SDL2 示例,但它是特定于 Windows 的,缺少用于线程的
标头,这显然没有针对 POSIX 系统的修复,因此这是一个死胡同。剩下的就是 WIN32 示例。 使用
编译时,我不断收到此错误:wineg++ -Iimgui/ -Iimgui/backends/ dx11.cpp -o main
error: ‘IID_PPV_ARGS’ was not declared in this scope
然后,我根据宏的
MSVC 文档 添加了 标头,但问题仍然存在。有没有办法替换这个宏?
解决了,我改变了这个:
g_pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer));
对此:
g_pSwapChain->GetBuffer(0, IID_ID3D11Texture2D, reinterpret_cast<void**>(&pBackBuffer));