gpt4 book ai didi

sdl - 带参数的 D 语言函数调用

转载 作者:行者123 更新时间:2023-12-04 18:32:38 24 4
gpt4 key购买 nike

我正在学习 D 并且主要使用 C#。具体来说,我正在尝试使用 Derelict3 Binding到 SDL2。我已经能够让一些基本功能正常工作,但我对如何为特定调用创建数组参数感到困惑。

库中包含调用

SDL_RenderDrawLines(SDL_Renderer*, const(SDL_Point)*, int)  //Derelict3 Binding

我一直无法正确地形成论据

const(SDL_Point)*

这个函数的 SDL 文档指出这个参数是一个 SDL_Point 数组,但我不清楚如何创建一个合适的数组来传递给这个函数。

这是我目前拥有的示例:

void DrawShape(SDL_Renderer* renderer)
{
SDL_Point a = { x:10, y:10};
SDL_Point b = { x:500, y:500};

const(SDL_Point[2]) points = [a,b];

Uint8 q = 255;
SDL_SetRenderDrawColor(renderer,q,q,q,q);
SDL_RenderDrawLines(renderer,points,1);
}

并且编译器提示我没有在 points 中为 const(SDL_Point)* 传递正确类型的参数。

Error: function pointer SDL_RenderDrawLines (SDL_Renderer*, const(SDL_Point)*, int)
is not callable using argument types (SDL_Renderer*, const(SDL_Point[2u]), int)

我怀疑这是我的根本误解,因此我们将不胜感激。

最佳答案

数组不能隐式转换为 D 中的指针。相反,每个数组(静态和动态)都有一个内在的 .ptr 属性,该属性是指向其第一个元素的指针。

将您的代码更改为:

SDL_RenderDrawLines(renderer,points.ptr,1);

关于sdl - 带参数的 D 语言函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18201197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com