Bazı yerel ntype
ile yerel bir kütüphaneye sahibim ve içinde bazı işlevleri çağırmak istiyorum. PInvoke - 'SomeType * []' için mareşal nasıl?
foo1(ntype** p) ==> foo1(IntPtr[] p)
Ama bunu yapmak için nasıl bilmiyorum:
foo1(ntype*[] p) ==> foo1(<???> p)
En az IntPtr[]
Düzenleme
Birlikte sıralamakta çalışıyorum yönetilmeyen fonksiyonudur:
typedef void(*mxFunctionPtr)(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[]);
Bu aşağıdaki matlab işleve çağrı temsil: mxFunctionPtr
olduğunu
extern mxArray* mclCreateSimpleFunctionHandle(mxFunctionPtr fcn);
imza:
function [varargout] = callback(varargins)
%[
%% Do callback code %%
%]
Açıkçası, benim beklentilerinden, bu işlev işaretçisi mxArray*
2 listeleri ile beni sağlamalıdır: girdi argümanlardan
- listesi (yani prhs,) matlab tarafında başlatıldı
- çıkış argümanları listesi (yani plhs, yaptığım testlerden Şu
, sadece için döner) değişkenlerin ilk ama hangi İçine yazmalıyım yapmak plhs
ve prhs
listeleri
C işlevleri göstermektedir ve diziler umutsuzca belirsizdir. Bir şekilde kodunuzda farklı anlamlar vermediğiniz sürece ntype ** ve ntype * [] arasında fark yoktur. –