In RPGLE I can call a C function like this:
D sin PR extproc('sin')
D parm F value
C Eval mySine = sin( deg )
How do I do this in COBOL? Any examples? Thank you.
If you had a sample RPG program such as:
<pre>
h dftactgrp(*no) bnddir('QC2LE')
dsin pr 8f extproc('sin')
d Parm 8f value
dMySine s 8f
/free
MySine = sin(1.570796326750000E+000);
dsply MySine;
*inlr = *on;
return;
/end-free
</pre>
and wanted the equivalent in COBOL, then:
<pre>
PROCESS NOMONOPRC.
IDENTIFICATION DIVISION.
PROGRAM-ID. SIN.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Parm COMP-2 VALUE 1.570796326750000E+000.
01 MySine COMP-2.
PROCEDURE DIVISION.
BEGIN.
CALL PROCEDURE 'sin' USING BY VALUE Parm
GIVING MySine.
DISPLAY MySine.
EXIT PROGRAM.
</pre>
and CRTBNDCBL PGM(SIN) BNDDIR(QC2LE) should get you going.
Alternatively you could also:
<pre>
CALL PROCEDURE 'sin' USING BY VALUE 1.570796326750000E+000
GIVING MySine.
DISPLAY MySine.
</pre>
Bruce
Last Wiki Answer Submitted: January 3, 2008 2:40 am by bvining6,055 pts.
If you live outside the United States, by submitting your email address you consent to having your personal data transferred to and processed in the United States.