关注:175 2014-01-11 10:26

当调用CVI自带的与Matlab相关的程序运行时,会产生错误提示:类没有注册,错误代码-2147221164

已解决 悬赏分:0 - 解决时间 2024-05-06 19:00
  支持(0)  |   反对(0)   |  我来评论 2014-01-11 12:40
回答=这是由于CVI里的这些例子是针对较早的Matlab版本写的,当机器上的Matlab的版本与写例程时的版本不一致时,就会产生这样的错误。解决方法是在CVI中相关的Project中建立相应的ActiveX控件。下面的方法适用于Matlab 6.5 R13:1.使用Tools >> Create ActiveX Controller,删除当前MATLAB instrument,重新建立MATLAB Automation Server Type。 MATLAB instrument的名字为MATLAB Application Type Library。将新建立的ActiveX controller的名字设置成与原来例子中相同的名字。2.将 matlabdemo.c中的launch callback中的stat = MLApp_NewDIMLApp (NULL, &hMatlab)改为stat = MLApp_NewDIMLApp (NULL, 1, LOCALE_NEUTRAL, 0, &hMatlab);3.打开MATLAB instrument的原代码,将所有&MLApp_IID_DIMLApp替换为 &IID_IDispatch。由于新函数中修改了参数,因此还要修改调用该函数的地方。另外,所有&MLApp_IID_DIMLApp需要被替换为相应MATLAB版本的&IID_IDispatch。详细操作可以参考http://digital.ni.com/public.nsf/allkb/0FB80F59D0AF9A4F8625703E007BF78B