Difference between revisions of "Dynamic linking"
(Added general description, plus warning.) |
|||
Line 1: | Line 1: | ||
+ | The CCALL interface is an OpenQM opcode that allows direct access to dynamically linked C libraries. What this means to us is that you can call C functions from within QM-Basic. | ||
+ | |||
+ | '''Warning!''' This is an inherently dangerous activity. It is very easy to crash QM processes using this interface, which can quickly lead to data corruption. When considering using this functionality, please consider using the socket libraries, which provide a much safer interface. | ||
+ | |||
== ccall.zip == | == ccall.zip == | ||
Revision as of 05:31, 6 February 2009
The CCALL interface is an OpenQM opcode that allows direct access to dynamically linked C libraries. What this means to us is that you can call C functions from within QM-Basic.
Warning! This is an inherently dangerous activity. It is very easy to crash QM processes using this interface, which can quickly lead to data corruption. When considering using this functionality, please consider using the socket libraries, which provide a much safer interface.
ccall.zip
This is a VERY comprehensive set of examples by Doug Dumitu related to calling functions in glibc.
If the links dont work then search in http://groups.google.co.uk/group/OpenQM for "ccall.zip" or "Creating a VFS interface to D3" or 'The CCALL layer is a low-level "stack" processors.' and look for Dougs post on the 3 Sep 2007. The ccall.zip file is attached at the end.
File: ccall.zip
Intro: Creating a VFS interface to D3 Look for Dougs post in this discussion.
"The CCALL layer is a low-level "stack" processor. It allows you to build the native C calling stack and then "call" a function. It assumes that you are very careful and understand calling conventions."