?
Solved

Wrong number of arguments or invalid property assignment error when calling Matlab Com in Visual Basic

Posted on 2003-11-25
5
Medium Priority
?
3,746 Views
Last Modified: 2013-11-25
I have a very simple mablab com (dll) function produced by matlab "comtool". The matlab .m file is named as  sumtwo.m and looks like:

function c = sumtwo(a,b)
   c= a+b;

I used Matlab comtool to produce a com dll for it, and named it as sumtwolib.dll and assigned a classname of sumtwoclass to it. After I built it, I can see this dll in the visual basic object viewer. I want to call it in Visual basic and see whether it will work or not. I just used a button in my user form, and when I click that button, I want to see the result. But when I run it, I got an error of "run time error 450. Wrong number of arguments or invalid property assignment error". Below is the visual basic code I wrote.

Private Sub cmdSum_Click()
 Dim sum As Integer
 Dim obj_dll
 Set obj_dll = CreateObject("sumtwolib.sumtwoclass")
 sum = obj_dll.sumtwo(1, 2)
 MsgBox sum
End Sub

Could someone kindly help me. Dll and Com are new for me.

Thanks in advance
0
Comment
Question by:yangye
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
5 Comments
 
LVL 16

Expert Comment

by:Richie_Simonetti
ID: 9819732
what is the return value of summtwo procedure?
Implemented code for that function?
0
 

Author Comment

by:yangye
ID: 9821355
I have figured out this problem by myself. Where Matlab's Dll function is a little different from others. I did like this:

......
obj_dll.sumtwo(1, sum, 1.0, 2.0)
......

where 1 means only 1 output parameter, sum is the output parameter, 1.0 and 2.0 are two input parameters, respectively. It also shown that this didn't work on integer input parameter. I don't know why, so I just changed them to double.
0
 

Author Comment

by:yangye
ID: 9821366
Thanks Richie_Simonetti for your kind reply. The return value of sumtwo function is the sum of the two input parameters. I have figured out how to do it. See my previous comment.
0
 
LVL 11

Accepted Solution

by:
bingie earned 60 total points
ID: 10080537
Question PAQed - 20 Points Refunded
0

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…

801 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question