yanhe0660 发表于 2008-12-17 14:53:07

VC调用MATLAB COM的问题

开门见山,我想要实现绘制波特图和奈奎斯特图,编写了一下两个m文件如下,编译时,MATLAB会提示num和den没有声明,生成COM时也有相同的提示,我的问题是
1,function类型的m文件是否不能单独编译?(如果我要再编译一个m文件,里面调用function声明的函数时都不会报错)
2.如果我只是想把下面的两个m文件生成COM,不知是否可以,要进行怎样的设置。
我用的MATLAB是7.0版的。
function Bode(num,den)
sys=tf(num,den);
bode(sys);

function Nyquist(num,den)
sys=tf(num,den);
nyquist(sys);
上面的问题解决了,但是我在生成COM时会提示下面的错误
include
fatal error C1083: Cannot open source file: 'Files/MATLAB704/extern/include': No such file or directory
mwcomtypes.idl
Processing C:/Program Files/MATLAB704/extern/include/mwcomtypes.idl
midl : command line error MIDL1003 : error returned by the C preprocessor (2)

C:/PROGRAM FILES/MATLAB704/BIN/WIN32//../WIN32/MEX.PL: Error: IDL compile of 'mwcomtypes.idl' failed.
不知这个错误要在那里添加缺少的文件,还是我的MATLAB少了文件?
谢谢大家!

[ 本帖最后由 yanhe0660 于 2008-12-17 15:32 编辑 ]

ljelly 发表于 2008-12-17 15:01:03

这么简单的两个函数,建议不用写成function形式
如果是频繁调用的话,就另写一个m文件,然后一
起编译生成COM,也没多少工作量吧

这种function型m文件,如果没有输入参数,也许能够编译
有输入参数,而又未赋传递的参数值是编译不了的

yanhe0660 发表于 2008-12-17 15:33:58

谢谢耕耘的建议!我也感觉自己那么做很麻烦,主要是对MATLAB不熟悉,问题都解决了,后来发现是我MATLAB版本的问题,在其他版本下就不会有问题!

[ 本帖最后由 yanhe0660 于 2008-12-17 18:25 编辑 ]
页: [1]
查看完整版本: VC调用MATLAB COM的问题