找回密码
 注册
Simdroid-非首页
查看: 97|回复: 3

VC中调用matlab生成的dll传递参数是数组的问题

[复制链接]
发表于 2010-5-14 13:33:56 | 显示全部楼层 |阅读模式 来自 江苏南京
matlab原函数如下:

function [img] = mydll(pic)
img=sin(pic);
end

img 和 pic均为二维数组
这段函数在matlab中生成了一个dll
dll里面有一个函数是
[uint8, MATLAB arrayPtr, MATLAB array] mlfmydll(int32, MATLAB arrayPtr, MATLAB array)

现在想在VC中调用这个dll,再打包成一个新的dll
请问vc中的那段代码该如何写?
主要是数组的类型转转和传递的问题,一直没弄清。 大家帮帮忙,谢谢了!
 楼主| 发表于 2010-5-14 17:09:25 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
有一个问题,我的matlab生成的dll中共有五个函数,其中两个是:
[uint8, MATLAB arrayPtr, MATLAB array] mlfmydll(int32, MATLAB arrayPtr, MATLAB array)
[uint8, MATLAB arrayPtr, MATLAB arrayPtr] mlxmydll(int32, MATLAB arrayPtr, int32, MATLAB arrayPtr)
我想VC中应该调用这两个中的一个,拿mlfmydll做实例,具体过程应该是这样的:
void   change (double * img, double *  pic)
{
        VC数组类型到matlab数组类型转换;
   
                用matlab数组类型调用mlfmydll函数;
}
回复 不支持

使用道具 举报

发表于 2010-5-14 20:20:17 | 显示全部楼层 来自 新加坡
你用的是哪个版本的matlab?

一般来说mlx开头的接口函数的定义(关于输入、输出参数声明)类似于mex函数的入口地址。

关于调用编译后的函数时候在C和matlab数据转换,其实很简单,看几个例子就了解了。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-5-16 14:17:54 | 显示全部楼层 来自 江苏南京
使用的matlab2010,vs2005。
用deploytool工具和mcc -W cpplib:mydll -T link:lib mydll命令生成的dl都是这样。
难道是我的版本太新了?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 23:25 , Processed in 0.033746 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表