matlab中的Actxserver函数

时间:2015-03-05 17:58:18

标签: matlab

我将在Matlab和另一个软件(DSATools)之间进行通信。

该软件已生成.bin文件作为输出,我需要动态读取它。正如在DSATools的手册中提到的那样,我应该从这样的事情开始,开始阅读:

r = actxserver('ResultScript.BinReader')

但是当我在命令窗口中尝试它时,将出现以下错误:

使用feval

时出错
Server Creation Failed: Class not registered

actxserver中的错误(第86行)

h = feval(['COM.' convertedProgID], 'server', machinename, interface);

有人对这些错误有任何疑问吗?解决办法是什么? (我的操作系统是Windows 8 64位。我的matlab是2013 64位,DSATools可以被64位和32位操作系统使用。)

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我能够使用注册表技巧published here来解决这个问题。它还在64位注册表列表中注册COM对象。

  1. $('body').on('click','.heading a',function(){ alert('boop'); //function });

  2. 下找到您的COM对象GUID
  3. 找到后,添加一个新的REG_SZ(字符串)值。名称应为AppID,数据应与您刚刚搜索的COM对象GUID相同。

  4. HKey_Classes_Root\Wow6432Node\CLSID\[GUID]

  5. 下添加新密钥
  6. 新密钥的调用应与com对象GUID相同。

  7. 在刚刚添加的新密钥下,添加一个新的REG_SZ(字符串)值,并将其命名为HKey_Classes_Root\Wow6432Node\AppID\。将值保留为空。

  8. DllSurrogate下创建一个新密钥再次,新密钥应该与COM对象的GUID相同。此密钥下无需添加任何值。