函数非托管声明为:
extern mxArray * mlfAtscale(mxArray * * mx, mxArray * * sx, mxArray * x);
老手应该能看出来,这个是一个由matlab生成的dll文件的入口函数;现在要在C#中调用它;
很明显,函数输入为两个指向数组指针的指针,一个数组指针,输出为一个数组指针;
而且所要输入与输出的数组均为二维double型数组;
我是新手,不知道要如何在托管代码中声明它并调用;
希望有达人给出较详细解决办法!!
extern mxArray * mlfAtscale(mxArray * * mx, mxArray * * sx, mxArray * x);
老手应该能看出来,这个是一个由matlab生成的dll文件的入口函数;现在要在C#中调用它;
很明显,函数输入为两个指向数组指针的指针,一个数组指针,输出为一个数组指针;
而且所要输入与输出的数组均为二维double型数组;
我是新手,不知道要如何在托管代码中声明它并调用;
希望有达人给出较详细解决办法!!
解决方案 »
- C#动态添加树节点后remove时是否释放了资源?
- 异常处理的 catch 语句中,什么情况下需要 messagebox.show 出错误信息,何时要再次抛出异常呢?
- 用于QQ互相通信的协议
- C# 指针是为了什么?指针在运算中何意?
- 急~~~~在線等~~~~我有一个.net项目,是在簡體下做的,有什么么工具可以批量转换成繁體
- label控件;-)
- 条件编译 C#
- 如何能不让dataGrid(winForm)不能多选,或怎么去掉选中的状态
- 小弟有一个疑问,关于c#语言的
- dotNet中,如何使用WM_NCCALCSIZE或者其他更好的方法来改变一个窗口的客户区的大小或者位置?
- 为什么dropdownlist,改变选项没反应啊,进不了事件程序?
- 在线等,谢谢!!DataSet里面的数据和TreeView如何绑定??
[DllImport("E:/SourceFiles/....../libatscale.dll")]
public static extern Double[,] mlfAtscale(ref Double[,] mxArray, ref Double[,] sxArray, Double[,] xArray);
我定义并初始化了四个二维double型数组,并如此调用函数:
outputDouble=myClass.mlfAtscale(ref double1,ref double2,double3);
引发MarshalDetectiveException异常;
还有我是不是应该用IntPtr类型啊,那样的话是不是一定要在非托管区分配内存空间呢,比如调用Marshal.AllocHGlobal()函数!!