Easy declarative foreign function & memory API, utilizing Java 19's FFM preview
Currently a work-in-progress. Snapshots only. Not for use in production.
interface User32 {
fun GetKeyState(virtKey: Int): Short
}val user32 = foreignLibrary(User32::class)
val keyState = user32.GetKeyState(KeyEvent.VK_SPACE)
println("Key state: $keyState")@FieldOrder(["x", "y"])
interface Point : ForeignStruct {
var x: Int
var y: Int
}val point = foreignStruct(Point::class)
point.y = 6
println("x=${point.x} y=${point.y}") // x=0 y=6interface Mouse {
fun position(): Point
fun move(point: Point)
}@FieldOrder(["points"])
interface Points : ForeignStruct {
@StructArray(10) // array size
val points: Array<Point>
}