使用 wineg++ 编译时未声明 IID_PPV_ARGS

问题描述 投票:0回答:1

简短版本:

IID_PPV_ARGS()
未使用 wineg++ 声明。有替代品吗

长版:

我正在尝试用imgui制作一个DX11 GUI。但是,我使用的是 Linux,并且没有足够的 RAM 来拥有运行 Windows 的可靠虚拟机,因此我使用 wineg++ 在我的系统上编译代码。

imgui 提供了一些用于不同框架创建 GUI 的示例,其中包括带有 SDL2WIN32 的 DX11。我尝试编译 SDL2 示例,但它是特定于 Windows 的,缺少用于线程的 标头,这显然没有针对 POSIX 系统的修复,因此这是一个死胡同。剩下的就是 WIN32 示例。

使用

wineg++ -Iimgui/ -Iimgui/backends/ dx11.cpp -o main
编译时,我不断收到此错误:

error: ‘IID_PPV_ARGS’ was not declared in this scope

然后,我根据宏的 MSVC 文档 添加了 标头,但问题仍然存在。有没有办法替换这个宏?

c++ visual-c++ directx-11 wine imgui
1个回答
0
投票

解决了,我改变了这个:

g_pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer));

对此:

g_pSwapChain->GetBuffer(0, IID_ID3D11Texture2D, reinterpret_cast<void**>(&pBackBuffer));
© www.soinside.com 2019 - 2024. All rights reserved.