vb matlab dll,Matlab如何支持VB制作的COM DLL

这里放两个在实际工作中遇到的问题,还没找到解决的方法,向广大网友求助。

Matlab如何调用自定义的COM DLL的类?

我之前用visual basic 6.0制作了一个COM DLL,里面有几个类,还有几个模块函数。这个DLL被Excel调用没有任何问题。但我希望能在Matlab里面也直接调用它,没有成功。

按照帮助文件,此时需要用actxserver建立类实例(当然在使用前已经用regsvr32注册了dll文件,即在Matlab中运行'!regsvr32 testdll.dll'),假设dll的工程名为testdll,里面含有类testclass,我已经用下面代码生成一个testfun实例:

testclass= actxserver('testdll.testclass')

那么是否可以正常使用testclass呢?It depends,有些函数成员可以用,有些则不行,或者说我还没搞清楚如何用。

比如Matlab无法识别VB的可选参数。比如testclass定义了一个成员函数 testfun(a, optional b),那么在Matlab里面调用testclass.testfun(1)是可行的(但计算结果可能不如预期,因为b被默认初始化为0,即使你在函数的定义中重新定义了b),而testclass.testfun(1, 2)则会报错。

Matlab如何调用COM DLL中的函数?

这个DLL是别的程序自带的(比如WIND自带的WDF.dll),Excel下可正常使用,也知道它的内置函数的VB原型。但没办法用loadlibrary调用它内置的函数。

在网上搜到只言片语,说只需要为DLL建立一个相应的C语言的h文件即可。但VB的数据类型和C完全不一样,比如VB中原型为 function testfun(p1 as Date, p2 As String, optional p3) as Long的函数,其对应的h文件头该怎么写呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值