Re: Re: Net/Link: Problem with DLL (2)
- To: mathgroup at smc.vnet.net
- Subject: [mg48918] Re: [mg48888] Re: Net/Link: Problem with DLL (2)
- From: "Peter S Aptaker" <psa at laplacian.co.uk>
- Date: Wed, 23 Jun 2004 02:51:18 -0400 (EDT)
- References: <200406220931.FAA10242@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
After more reading and experimenting have now got something 'working' but have some more questions: My Fortran DLLs are imported to Excel via VBA (see below). I have tried to use the 'self documenting VB format for clarity but have only beem able to preserve it precisely for Double scalars as: (1) Comment: To get Int32 I have replaced Long by long; I recall .Net has longer default Integers. (2) Comment: the OUT array "second from last arg" seems to only be possible with Double[]. (3) Question: .. How can I make this a two dmensional array OUT. As you will see I currently use a 1-D array and Partition[]? (4) Comment: the OUT "last arg" seems best as, out int ; as the manual suggests. I guess this hybrid style is a mess but it was hard getting it working! Note that a real DLL would be needed to actually test this Mathematica ========= In[407]:= Clear[psaInductanceDLL, psaInductancedll]; psaInductancedll = DefineDLLFunction["psaMagIndMr2", "maths0000.dll", "Void", {"ByVal m As long", "ByVal rp As Double", "Double[]", "ByVal np As long", "ByVal rq As Double", "Double[]", "ByVal nq As long", "ByVal gpp As long", "ByVal gpq As long", "double[]", "out int"}] psaInductanceDLL[m_,rp_, zpl_List, rq_, zql_List, opt___Rule] := Module[{ores}, ores = MakeNETObject[Table[0.0, {np*nq}]]; psaInductancedll[m, rp, zpl, np, rq, zql, nq, 4, 3, ores, status]; res = Partition[NETObjectToExpression[ores] , {np}] ] psaInductanceDLL is fast. My VBA (i.e. VB6) delaration is: ======================= Declare Sub psaMagIndMr3 Lib "maths0000.dll" ( _ ByVal m As Long, _ ByVal rp As Double, ByRef zpl As Double, ByVal np As Long, _ ByVal rq As Double, ByRef zql As Double, ByVal nq As Long, _ ByVal gpp As Long, ByVal gpq As Long, _ ByRef res As Double, ByRef status As Long) Thanks Peter Aptaker ----- Original Message ----- From: "psa" <psa at laplacian.co.uk> To: mathgroup at smc.vnet.net Subject: [mg48918] [mg48888] Re: Net/Link: Problem with DLL (2) etc etc
- References:
- Re: Net/Link: Problem with DLL (2)
- From: "psa" <psa@laplacian.co.uk>
- Re: Net/Link: Problem with DLL (2)