Matlab与VB.Net的问题
我现在想用Matlab7.5(Matlab2007b)与VB.Net(VS2003)进行混合编程,在VB中调用Matlab为.net生成的dll(文件名为BLS)时,我用了下面的方法:Dim S As MWNumericArray = New MWNumericArray(MWNumericType.Double, 100)
Dim X As MWNumericArray = New MWNumericArray(MWNumericType.Double, 80)
Dim r As MWNumericArray = New MWNumericArray(MWNumericType.Double, 0.05)
Dim T As MWNumericArray = New MWNumericArray(MWNumericType.Double, 2)
Dim sigma As MWNumericArray = New MWNumericArray(MWNumericType.Double, 0.3)
Dim q As MWNumericArray = New MWNumericArray(MWNumericType.Double, 0.01)
ret = bls.blsprice(2, S, X, r, T, sigma, q)
其中bls是Matlab自带的一个给期权定价的函数,但是它老是报错,说“input must be real”. 这个是什么问题呢?在Matlab中输入同样的参数是可以的。
还有我生成COM时再VB.net中添加引用时,死活引用不上,VS2003老是重启。
请教各位大侠...感激不尽! --------------------编程问答-------------------- dll需要注册? --------------------编程问答-------------------- 问题已解决。
方法如下:在Matlab中以Com方式生成dll然后在VB.net(2003)中引用该COM。Vs2003报错重启,发现该dll目录下有生成两个dll为:Interop.MWComUtil.dll 和Interop.MyCom.dll (原dll为:MyCom_1_0.dll),这次引用新产生的dll,不引用原dll,结果不报错了。
然后在VB.NET中使用该方法bls.blsprice(2, S, X, r, T, sigma, q),结果正确。问题解决!
现在又有个问题就是:
到底哪些函数用Matlab的Matlab Builder for .NET 中的.NET Compenent,哪些用Generic COM Compenent来产生dll才能在.net中被正确引用呢?
是以什么来区分呢,有什么规律吗?
请高手多多指教!
补充:.NET技术 , VB.NET