|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
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之间传递函数的参数的?想找来看看 |
|