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

无法匹配glfwCreateWindow方法:LWJGL代码转换报错求助

LWJGL glfwCreateWindow 方法参数不匹配问题修复

问题还原

我跟着LWJGL教程学习,要把这段原生GLFW代码转成Clojure:

window = glfwCreateWindow(300, 300, "Hello World!", NULL, NULL);

写的Clojure代码是:

(let [window (GLFW/glfwCreateWindow (int 400) (int 300) "LWJGL" nil nil)]

编译时报错:

Syntax error (IllegalArgumentException) compiling . at (lwjgl_intro/core.clj:13:16). No matching method glfwCreateWindow found taking 5 args for class org.lwjgl.glfw.GLFW

问题原因

LWJGL3的Java包装类里,glfwCreateWindow的最后两个参数(monitor和share)是long类型,对应原生GLFW的指针类型。原生的NULL在Java中要对应0L,而不是nil——传nil会被当成null,和方法要求的long类型不匹配,导致JVM找不到对应方法签名。

修复代码

把最后两个nil换成0L即可:

(let [window (GLFW/glfwCreateWindow (int 400) (int 300) "LWJGL" 0L 0L)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 06:37:06