Well, I'm flabbergasted.

Apparently, JDLLServer (for 64-bit) behaves very differently from 
JEXEServer.

The error I got with ErrorText after using SetM was: "not supported in 
EXE server".

So, I tested SetB and GetB with JDLLServer and lo and behold, they work!

     int[] intArray = { 4, 8, 15, 16, 23, 42 };
     object intArrayObj = intArray;
     jObject.SetB("IntArray", ref intArrayObj);
     object jIntArray;
     jObject.GetB("IntArray", out jIntArray);
     Console.WriteLine(IntArrayToString(intArray));
     Console.WriteLine(IntArrayToString((int[])jIntArray));
     jObject.Do(@"IntArrayStr =: "": IntArray");
     object jIntArrayStr;
     jObject.GetB("IntArrayStr", out jIntArrayStr);
     Console.WriteLine(jIntArrayStr);
     Console.ReadLine();

This is our base code. Ugly, but this is the minimal stuff to make it work.

Now, with J-64bit registered, declare jObject thus:

JEXEServerClass jObject = new JEXEServerClass();

The output will be:

4 8 15 16 23 42
4 8 15 16 23 42
34359738372 68719476751 180388626455 0 0 0

But with this:

JDLLServerClass jObject = new JDLLServerClass();

The output is:

4 8 15 16 23 42
4 8 15 16 23 42
4 8 15 16 23 42

I just need to test out GetM and SetM with the DLL. So clearly J.exe and 
J.dll were compiled with a few differences. This makes debugging very 
nasty, but it also means that J64.exe should not be used in production 
as a COM, unless you promise not to use arrays.

Martin Pelletier

On 2010-10-14 17:50, David Mitchell wrote:
> I have not been able to get GetM to work with C#.
>
> But, when I was trying out variations based on your example, I did find that 
> the
> following code worked to help find out the text form of at least some of the
> returned errors:
>
> foo = jObject.SetB(name, ref value);
> foo = jObject.ErrorText((int)foo,out jmsg);
>
> Perhaps this would help with the error you are seeing.
>
> Good luck,
> --
> David Mitchell

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to