You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用SDL_Vulkan_GetInstanceExtensions报"Invalid Window"错误,求解决思路

SDL3调用SDL_Vulkan_GetInstanceExtensions返回"Invalid Window"错误排查

我一直尝试解决这个问题但毫无头绪。程序流程为初始化SDL3、加载默认库、创建带有SDL_WINDOW_VULKAN标识的窗口,随后查询所需扩展。调用SDL_Vulkan_GetInstanceExtensions时,SDL_GetError返回"Invalid Window"错误。我确认窗口不为NULL且能正常显示,但仍无法解决问题。已尝试printf调试、检查SDL错误信息、排查链接器、查阅文档等方法,均未找到解决方案,附上代码寻求帮助:

#include <stdlib.h>
#include <stdio.h>
#include <vulkan/vulkan.h>
#include <cglm/cglm.h>
#include <vk_mem_alloc.h>
#include <time.h>

#define SDL_MAIN_HANDLED
#include <SDL3/SDL.h>
#include <SDL3/SDL_vulkan.h>

typedef struct Window_T {
    SDL_Window* window;
    VkExtent2D size;
    char* name;
    VkSurfaceKHR surface;
} Window;


int main(void) {
    printf("Hello, World!\n");

    SDL_Init(SDL_INIT_VIDEO);

    printf("ERROR INIT: %s\n", SDL_GetError());

    SDL_Vulkan_LoadLibrary(NULL);
    printf("ERROR LOAD: %s\n", SDL_GetError());

    Window window;
    //createWindow(&window, 800, 600, "Hello from SDL3");
    window.window = SDL_CreateWindow("Hello, SDL3!", 800, 600, SDL_WINDOW_VULKAN);
    printf("ERROR MAKE: %s\n", SDL_GetError());

    Uint32 sdl_required_extension_count;
    const char* const* sdl_required_extensions = SDL_Vulkan_GetInstanceExtensions(&sdl_required_extension_count);

    printf("SDL_REQUIRED_EXTENSION_COUNT: %d\n", sdl_required_extension_count);
    printf("ERROR: %s\n", SDL_GetError());
        
    SDL_DestroyWindow(window.window);

    return 0;
}

内容的提问来源于stack exchange,提问作者Ozone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:41:06