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