cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1617|回复: 4

Labwindows与Matlab的接口问题!!!

[复制链接]
发表于 2007-8-27 20:51:42 | 显示全部楼层 |阅读模式
最近一直在弄这个东西,到处找资料来看,现在可以在LABWINDOWS里启动MATLAB,但是弹出“不支持接口”的提示框。希望你那个得到大家的帮助
另外,在论坛里也看到了很多类似的求助贴,可是没有最终问题解决了没有也看不多,按照论坛的解决办法,我就只能走到这布了。

下面是我的方法:(主要参照驴性不改博客方法)

LABWINDOWS 8.1.1      
MATLAB7.0(先装好的)


打开LABWINDOWS里关于MATLAB的例子,编辑工程,删除matlabsrvr三个文件(.c,.h,.fp)

重新创建ACTIVEX,生成的文件覆盖原来的三个文件覆盖愿文件,然后将生成的三个文件加入工程

修改matlabdemo.c中的“stat = MLApp_DIMLAppQuit (*hMatlabPtr, NULL);” 为:“stat = MLApp_NewDIMLApp (NULL, 1, LOCALE_NEUTRAL, 0, &hMatlab);”

进行下一步的时候,驴的文章中的提到还要在matlabdemo.c中修改的地方我没有找到,我在matlabsrvr.c中找到了如下内容:

const IID MLApp_IID_DIMLApp =
        {
                0x669CEC93, 0x6E22, 0x11CF, 0xA4, 0xD6, 0x0, 0xA0, 0x24, 0x58, 0x3C, 0x19
        };

const IID MLApp_IID_IMLApp =
        {
                0x669CEC92, 0x6E22, 0x11CF, 0xA4, 0xD6, 0x0, 0xA0, 0x24, 0x58, 0x3C, 0x19
        };

const IID MLApp_IID_DIMLEval =
        {
                0x6E813920, 0x23FE, 0x4D6D, 0x91, 0xF8, 0x56, 0xFA, 0xB0, 0x6C, 0x5D, 0x13
        };

const IID MLApp_IID_IMLEval =
        {
                0x27BEA9CE, 0xA20C, 0x430F, 0x87, 0xC2, 0x1C, 0xC8, 0xBA, 0x31, 0xC3, 0xA8
        };

将之全部屏蔽后,定义了上面的四个变量(驴文中是三个,可能版本问题)。


然后运行程序,仍然弹出不支持接口的对话框,不知道怎么解决了

希望大家帮帮忙,希望这个帖子能称为接口问题的最后一个帖子!
 楼主| 发表于 2007-8-28 00:43:08 | 显示全部楼层
也试过了前面一个帖子,修改matlab注册码的方法

那样可以启动MATLAB,也没有弹出“不支持接口”的框,但是不能运行控件功能,点击以后就弹出:“error in sending matrix to matlab"或者类似的消息。

不知道这个又怎么解决...
 楼主| 发表于 2007-8-30 23:27:42 | 显示全部楼层
怎么这么久都没有人帮帮忙啊,这个是matlab里matlabutil.c里sendstring的一段程序,问题可能在这里了,谁看看这问题出在什么地方
int SendString(CAObjHandle hMatlab, char *matStringName, char *CVIString)
{
    double          *buffer         =   NULL;
    char            command[300];
    int             index           =   0;
    int             i               =   0;
    int             result          =   0;
   
    if(CVIString == NULL)
    {
        return ERROR_EMPTY_STRING;
    }
    index=strlen(CVIString);
    /* Convert the string into a double array */
    buffer=(double *)malloc(index*sizeof(double));
    for(i=0;i<index;++i) buffer=(double)CVIString;
   
    /* Send the double array to MATLAB */
    result = SendMatrix(hMatlab, matStringName, buffer, NULL, index, 1);
    free(buffer);
    if (result != SUCCESS) return result;
   
    /* Convert the double array into a MATLAB string */
    Fmt(command,"%s<%s=transpose(%s)",matStringName,matStringName);
    result = RunMatlabCommand(hMatlab, command);
    if (result != SUCCESS) return result;
    Fmt(command,"%s<%s=char(%s)",matStringName,matStringName);
    result = RunMatlabCommand(hMatlab, command);
    if (result != SUCCESS) return result;
   
    return SUCCESS;
}
发表于 2010-9-4 12:57:11 | 显示全部楼层
哦设置后可以打开matlab,但是从cvi发送到matlab出错
发表于 2010-11-23 00:56:50 | 显示全部楼层
怎么 修改matlab注册码 的呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-7 17:36 , Processed in 0.990914 second(s), 9 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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