Zig Lang 选角

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

我正在尝试在 Zig Lang 中重写一个 Hello 三角形,但是我遇到了一些问题。我无法使用指针强制转换。

fn framebufferResizeCallback(window: ?*cInclude.GLFWwindow, _: c_int, _: c_int) callconv(.C) void {
    var app = @as(*HelloTriangleApplication, cInclude.glfwGetWindowUserPointer(window));
        
    app.framebufferResized = true;
}

我该如何解决这个问题?

我预计会出现错误。

glfw vulkan zig
1个回答
0
投票

@as
用于类型强制。要进行指针转换,您需要使用
@ptrCast
。例如:

var app: *HelloTriangleApplication = @ptrCast(glfwGetWindowUserPointer(the_window));

var app = @as(*HelloTriangleApplication, @ptrCast(glfwGetWindowUserPointer(the_window)));
© www.soinside.com 2019 - 2024. All rights reserved.