MathGroup Archive 1994

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

Search the Archive

Re: C program and Mathematica

  • To: mathgroup at
  • Subject: Re: C program and Mathematica
  • From: tgayley (Todd Gayley)
  • Date: Thu, 10 Feb 1994 11:36:49 -0600

Tom Fister (tfister at writes:

>>From Tom Fister
>I would like to thank everyone who
>sent me help on the matrix printing 
>problem.  Now, I have another question.
>I am trying to install a c program 
>into mathemtica.  The program will
>return an integer list and a string.
>I can get it to return either an
>integer string or list but not both
>I would like to return a list in the form
>    {{1,2,3},"teststring"}
>The C program is as follows
>int main(argc,argv)
>    int argc;
>    char  *argv[];
>    {
>     return MLMain(argc,argv);
>    }
>int   test()
>     {
>     char string[100];
>     int  array[3];
>     strcpy(string,"teststring");
>     array[0]=1;
>     array[1]=2;
>     array[2]=3;
>     MLPutIntegerList(stdlink,array,3);
>     MLPutSting(stdlink,string);
>     }
>  And, I have created a .tm file.  I am
>  compiling using mcc.   

The problem is that your external function does not return a list of two
things; it returns two things. A Mathematica function can only return one
thing. You need to manually wrap your integer list and string in a list.
Thus, your "putting" code should look like:

     MLPutFunction(stdlink, "List", 2);

I presume also that you have used Manual as the :ReturnType: in your .tm file.


  • Prev by Date: Mathematica is prospering
  • Next by Date: eps export of graphics on Mma/Windows 3.1
  • Previous by thread: Mathematica is prospering
  • Next by thread: eps export of graphics on Mma/Windows 3.1