Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Mathlink and C#

  • To: mathgroup at smc.vnet.net
  • Subject: [mg46520] Re: [mg46497] Mathlink and C#
  • From: Todd Gayley <tgayley at wolfram.com>
  • Date: Sun, 22 Feb 2004 11:27:19 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

At 05:53 AM 2/20/2004, Thomas Manz wrote:
>Hi!
>
>Some time ago I programmed a own procedure in C and used it in 
>Mathematica, what worked very well.
>Now I would be interested in using C# but I can´t find a simple example 
>neither for the Mathematca worksheet (which should be simple?) nor for a 
>C# source code. I would expect something like adding two numbers, i. e. 
>calling a procedure "mysum[2,3]" and getting 5.
>The examples in the Mathematica installation (changing the process 
>priority of the Mathkernel.exe) isn´t that what I would call simple!!
>
>Does anyone have more information or even an example!
>
>Best regards
>Thomas Manz


Thomas,

If you look in the Help Browser under the Add-ons & Links tab, you will 
find the .NET/Link User Guide, which contains some simple examples. The 
example notebooks you found are intended to be more significant 
"real-world" examples that go beyond the fragments that are used in the 
User Guide.

If you have a C# class "Foo" with a static method like this:

     public static int mysum(int i, int j) { return i + j; }

Here is how you call it from Mathematica. First make sure .NET/Link is 
loaded and running:

     <<NETLink`
     InstallNET[]

Now load your assembly and the Foo class:

     LoadNETAssembly["c:\\path\\to\\fooassembly.dll"]
     LoadNETType["Foo"]

Call the mysum function:

     Foo`mysum[2, 3]

That's it.

If the method isn't static, use NETNew to create a new instance of the Foo 
class, and call the mysum method on the object:

     foo = NETNew["Foo"];
     foo@mysum[2, 3]



Todd Gayley
Wolfram Research



  • Prev by Date: Re: Bernoulli variable algebra
  • Next by Date: i dont understand module.
  • Previous by thread: Re: Mathlink and C#
  • Next by thread: Chebyshev's Identity