我有一个本地库,其中包含一些本机ntype
,并希望在其中调用一些函数.
我能够为:
foo1(ntype** p) ==> foo1(IntPtr[] p)
Run Code Online (Sandbox Code Playgroud)
但不知道如何做到:
foo1(ntype*[] p) ==> foo1(<???> p)
Run Code Online (Sandbox Code Playgroud)
至少IntPtr[]
没有奏效.
编辑
我试图编组的非托管函数是:
extern mxArray* mclCreateSimpleFunctionHandle(mxFunctionPtr fcn);
Run Code Online (Sandbox Code Playgroud)
在哪里mxFunctionPtr
:
typedef void(*mxFunctionPtr)(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[]);
Run Code Online (Sandbox Code Playgroud)
这表示调用以下matlab函数签名:
function [varargout] = callback(varargins)
%[
%% Do callback code %%
%]
Run Code Online (Sandbox Code Playgroud)
显然,从我的期望来看,这个函数指针应该为我提供了2个列表mxArray*
:
目前,从我所做的测试中,它只返回首创mxArray*
的plhs
并prhs
表