声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3298|回复: 0

[混合编程] 用deploytool怎么生成VB可调用的dll?

[复制链接]
发表于 2008-10-30 13:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
matlab2007a好像是用deploytool生成dll,我想将m文件弄成vb可以调用的dll文件,应该怎么做?
打开deploytool窗口,新建项目有以下几个:应该选哪个才对
一是matlab compile,里面包含standalone application、cshared library、c++ shared library
二是matlab builder for excel,这个我知道不像
三matlab builder for  .net,里面有.net component、generic com component
四是matlab builder for  java,这个似乎也不是
我以前是选择c++ shared library,生成的dll文件跟用mcc命令生成的一样,m文件在matlab中运行无误,而vb中出错
example.m:
function t
fid1 = fopen('m.dat','wb');
m = [1 3 5 6 9];
fwrite(fid1,m,'float');
fclose(fid1);
然后用matlab的mcc命令生成dll(已经设置过mex -setup,mbuild -setup,选择的是MS VC++ 6.0):
mcc -W lib:example -T link:lib example

然后将生成的example.dll拷到VB工程目录下,在模块中声明如下:
Public Declare Sub mlfExample Lib "example.dll" ()
最好在VB的按钮代码中调用这个函数
Private Sub Command1_Click()
Call mlfMyadd2
End Sub
结果运行时一点击就出错(就是VB 遇到问题需要关闭)
另外用dll查看器看生成的dll文件,可以看到很多函数
libexampleInitialize
libexampleInitializeWithHandlers
libexampleTerminate
mlfExample
mlxExample
用到的应该是mlfExample吧?
另外有什么文章是关于VB和matlab的dll之间传递函数的参数的?想找来看看
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-4 12:53 , Processed in 0.062530 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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