在Vulkan代码中,VK_KHR_WIN32_SURFACE_EXTENSION_NAME未定义

Ian*_*ung 3 c++ graphics vulkan

我正在尝试编写一个简单的基于vulkan的应用程序,但在尝试将表面扩展添加到已启用扩展的列表时,如下所示:

    enabledExtensions.push_back( VK_KHR_SURFACE_EXTENSION_NAME );
#if defined (_WIN32)
    enabledExtensions.push_back( VK_KHR_WIN32_SURFACE_EXTENSION_NAME );
#else
    enabledExtensions.push_back( VK_KHR_XCB_SURFACE_EXTENSION_NAME );
#endif
Run Code Online (Sandbox Code Playgroud)

视觉工作室抱怨VK_KHR_WIN32_SURFACE_EXTENSION_NAME未定义.

当我右键单击它并转到定义时,它会打开vulkan.h.经过检查,VK_USE_PLATFORM_WIN32_KHR我发现这也是未定义的,这阻止了定义VK_KHR_WIN32_SURFACE_EXTENSION_NAME.有人可以解释如何解决这个问题吗?

Ian*_*ung 10

事实证明,我在项目设置中缺少一些预处理程序指令:

VK_PROTOTYPES
VK_USE_PLATFORM_WIN32_KHR
Run Code Online (Sandbox Code Playgroud)

我希望这些信息可以帮助那些遇到同样问题的人.