[comp.databases] External procedures for 4th Dimension

cpdilip@ut-emx.UUCP (Dilip Thadani) (08/25/89)

I'm trying to write an external procedure to 4D using Think C. I still
havent gotten V2.0 so I'm working with version 1.0.6. From what I could
gather from the manuals provided by ACIUS, the external mover utility
will move the procedure into 4D when it is stored as an application.

So I wrote a simple application in Think C and tried to use the mover 
utility but got error 49. After I created a new external proc file, I
tried to open (select) the external procedure I had written but got
the message that 0 bytes were selected. THen when I clicked on the button
that said >>> right or something like that I got error 49.

Could someone tell me how to write an external in 4D using Think C?
Also how do you pass an array to an external procedure? Is it just 
like passing an array from one C pgm to another?

Thanks
Dilip Thadani
cpdilip@emx.utexas.edu

liemandt@lindy.Stanford.EDU (Joe Liemandt) (08/29/89)

In article <17625@ut-emx.UUCP> cpdilip@ut-emx.UUCP (Dilip Thadani) writes:
>
>
>I'm trying to write an external procedure to 4D using Think C. I still
>havent gotten V2.0 so I'm working with version 1.0.6. From what I could
>gather from the manuals provided by ACIUS, the external mover utility
>will move the procedure into 4D when it is stored as an application.
>

You need to save it as a code resource.  There is a Mactutor article
(Sept. 88) on the particulars.


>So I wrote a simple application in Think C and tried to use the mover 
>utility but got error 49. After I created a new external proc file, I
>tried to open (select) the external procedure I had written but got
>the message that 0 bytes were selected. THen when I clicked on the button
>that said >>> right or something like that I got error 49.
>
>Could someone tell me how to write an external in 4D using Think C?
>Also how do you pass an array to an external procedure? Is it just 
>like passing an array from one C pgm to another?

4D 1.0 does not use a true array structure, so you cannot pass an
array via an external. Version 2.0 (just released) does have that
capability.  call ACIUS and they will provide you with the glue routines
to access 4D's variable table.

>
>Thanks
>Dilip Thadani
>cpdilip@emx.utexas.edu

Hope this helped.  Email if you have any other questions.

Joe Liemandt
Stanford University
liemandt@jessica.stanford.edu

Disclaimer:
"Anything I say is exactly what everyone at Stanford thinks. If they don't,
they should."