Can v call procedures written in other languages from a C prgm

S

shailashri_sk

Hello All,
Just wanted to know, if there is IDE which provides compilers for diff
languages like C, ADA, C++ etc. Can v call the procedures written in
C++ or ADA,
from these C prgms may be, by some compiler directives to tell, that
for this procedure a different compiler is to be used to produre the
..exe file.
thanks,
Shailu,
PS : As I know, in Ada language there is an option of using pragmas,
which are compiler directives, which tells to use C compiler and we
can call the C procedures from Ada prgm.
 
B

Ben Pfaff

Just wanted to know, if there is IDE which provides compilers for diff
languages like C, ADA, C++ etc. Can v call the procedures written in
C++ or ADA,
from these C prgms may be, by some compiler directives to tell, that
for this procedure a different compiler is to be used to produre the
.exe file.

Your question is outside the domain of comp.lang.c, which discusses
only the standard C programming language, including the standard C
library. This is a remarkably narrow topic compared to what many
people expect.

For your convenience, the list below contains topics that are not
on-topic for comp.lang.c, and suggests newsgroups for you to explore
if you have questions about these topics. Please do observe proper
netiquette before posting to any of these newsgroups. In particular,
you should read the group's charter and FAQ, if any (FAQs are
available from www.faqs.org and other sources). If those fail to
answer your question then you should browse through at least two weeks
of recent articles to make sure that your question has not already
been answered.

* OS-specific questions, such as how to clear the screen,
access the network, list the files in a directory, or read
"piped" output from a subprocess. These questions should be
directed to OS-specific newsgroups, such as
comp.os.ms-windows.programmer.misc, comp.unix.programmer, or
comp.os.linux.development.apps.

* Compiler-specific questions, such as installation issues and
locations of header files. Ask about these in
compiler-specific newsgroups, such as gnu.gcc.help or
comp.os.ms-windows.programmer.misc. Questions about writing
compilers are appropriate in comp.compilers.

* Processor-specific questions, such as questions about
assembly and machine code. x86 questions are appropriate in
comp.lang.asm.x86, embedded system processor questions may
be appropriate in comp.arch.embedded.

* ABI-specific questions, such as how to interface assembly
code to C. These questions are both processor- and
OS-specific and should typically be asked in OS-specific
newsgroups.

* Algorithms, except questions about C implementations of
algorithms. "How do I implement algorithm X in C?" is not a
question about a C implementation of an algorithm, it is a
request for source code. Newsgroups comp.programming and
comp.theory may be appropriate.

* Making C interoperate with other languages. C has no
facilities for such interoperation. These questions should
be directed to system- or compiler-specific newsgroups. C++
has features for interoperating with C, so consider
comp.lang.c++ for such questions.

* The C standard, as opposed to standard C. Questions about
the C standard are best asked in comp.std.c.

* C++. Please do not post or cross-post questions about C++
to comp.lang.c. Ask C++ questions in C++ newsgroups, such
as comp.lang.c++ or comp.lang.c++.moderated.

* Test posts. Please test in a newsgroup meant for testing,
such as alt.test.

news.groups.questions is a good place to ask about the appropriate
newsgroup for a given topic.
 
J

Joona I Palaste

Malcolm said:
No it isn't. Questions about how to call a function belong in the caller's
group. So if someone asks how to call a C function from Visual Basic that
belongs in Visual Basic. How to call functions written in other languages
from C belongs here.
Unfortunately there isn't a very good answer. There are no standard
facilities for doing so. However virtually every platform builds the
executable out of linked object files, and sometimes there is a way of
compiling another language to a C linkable .o or .obj file. Most assemblers
will do this, for example.

So the answer is "it depends on the implemenation", right?
 
M

Malcolm

Ben Pfaff said:
Your question is outside the domain of comp.lang.c, which discusses
only the standard C programming language, including the standard C
library.
No it isn't. Questions about how to call a function belong in the caller's
group. So if someone asks how to call a C function from Visual Basic that
belongs in Visual Basic. How to call functions written in other languages
from C belongs here.

Unfortunately there isn't a very good answer. There are no standard
facilities for doing so. However virtually every platform builds the
executable out of linked object files, and sometimes there is a way of
compiling another language to a C linkable .o or .obj file. Most assemblers
will do this, for example.
 
B

Ben Pfaff

Malcolm said:
No it isn't. Questions about how to call a function belong in the caller's
group. So if someone asks how to call a C function from Visual Basic that
belongs in Visual Basic. How to call functions written in other languages
from C belongs here.

So what answer can be derived from the C standard then, other
than "check your implementation's documentation"?
 
R

red floyd

Hello All,
Just wanted to know, if there is IDE which provides compilers for diff
languages like C, ADA, C++ etc. Can v call the procedures written in
C++ or ADA,
from these C prgms may be, by some compiler directives to tell, that
for this procedure a different compiler is to be used to produre the
.exe file.
thanks,
Shailu,
PS : As I know, in Ada language there is an option of using pragmas,
which are compiler directives, which tells to use C compiler and we
can call the C procedures from Ada prgm.

If you want to spend a small fortune (OK, a large fortune) Rational
Apex does that.

I suspect that you could do it in Eclipse as well. You just need to
ensure that your toolchain is compatible (best bet for compatibility
is probably gcc and gcc-ada).
 
R

Richard Bos

Ben Pfaff said:
So what answer can be derived from the C standard then, other
than "check your implementation's documentation"?

None. However, the OP asked "_Can_ I do this in C?." _That_ is on-topic,
even though the only on-topic answer is "No, you can't - but your
compiler suite might." Had he asked, e.g., "How do I use the
__PascalCall directive", that would've been off-topic; but he didn't.

Richard
 
B

Ben Pfaff

None. However, the OP asked "_Can_ I do this in C?." _That_ is on-topic,
even though the only on-topic answer is "No, you can't - but your
compiler suite might." Had he asked, e.g., "How do I use the
__PascalCall directive", that would've been off-topic; but he didn't.

I read it as a question about an IDE.
 
S

shailashri_sk

Malcolm said:
Unfortunately there isn't a very good answer. There are no standard
facilities for doing so. However virtually every platform builds the
executable out of linked object files, and sometimes there is a way of
compiling another language to a C linkable .o or .obj file. Most assemblers
will do this, for example.

Hi,
SO, there isn't any way to call the functions from C prgm, written in
a diff language then.
Shailu.
 
R

Richard Bos

SO, there isn't any way to call the functions from C prgm, written in
a diff language then.

No portable way, that is. If you want to call, say, a function written
in Gnu Pascal, then Gnu C probably has a facility to do so; if you want
to call a function written in MicroSoft Visual Basic from MSVC, this may
well be possible; but in all such cases, the way to do so is necessarily
specific to that particular compiler, and you need to read its
documentation, or ask in a newsgroup for that compiler, to find out how.

Note that C++ is a special case: you explicitly _can_ call C functions
from C++ programs, but this is handled by the C++ Standard, not by C, so
ask about this feature in comp.lang.c++.

Richard
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top