首页 > 解决方案 > NativeCall 子绑定中的“通过的位置太多”

问题描述

我有这个定义:

use NativeCall;

unit module kazmath;

class mat4 is repr('CStruct') {
    HAS num32 @.mat[16] is CArray;
}

sub kmMat4Fill( mat4 $mat, num32 @filler ) returns mat4 is native('kazmath')
                                            is export {*}

绑定的函数在这里定义

kmMat4* kmMat4Fill(kmMat4* pOut, const kmScalar* pMat);

并且返回的错误是:

Too many positionals passed; expected 2 arguments but got 3

我真的想不通。

标签: rakunativecall

解决方案


这是固定的

sub kmMat4Fill( mat4 $mat, CArray[num32] $filler )
        returns mat4 is native('kazmath') is export {*}

Positionals 不能在 NativeCall 中使用,但错误消息仍然是 LTA(Less Than Awesome)。


推荐阅读