12.4 Object output file OBJ

  ----------------------------

 

      Currently C-- can create OBJ files but cannot link them.

 

      Earlier versions of C-- could create OBJ files which you could then use

  in projects created in other languages, or 'slave' modules. But only

  functions were available of C-- modules for the basic project, and these

  functions could not use global variables.

 

      But now C-- can create a 'master' module which can be linked to an

  independent file.

 

      It is now possible to use as an OBJ file external (extern) functions,

  variables or structures. You need only declare them as extern. The keyword

  'extern' must always be the first Here is an example of how to declare

  external objects.

 

  extern void cdecl _printf(); // declaration of external function _printf of

                            // type cdecl and return type void

  extern int buts,cubs;     // declaration of two external variables of type int

  extern struct IPXL ipxl;  // declaration of ipxl external structure with IPXL

                      // tag, which tag must have been described

                      // previously.

 

      Now that you can declare external objects, you can link to a C-- OBJ

  module modules written in other languages, or you can attach to a C--

  program functions from libraries in other languages. When declaring

  external objects it is very important to correctly specify the type and

  name of the function. When using external functions written in C, you will

  usually need to specify the cdecl modifier and add '-' to the name of the

  function or variable.

 

      All functions, global variables and global structures from the master

  OBJ file written in C-- are available for other modules.

 

      To obtain a slave OBJ module during compilation use the switch /sobj.

 

      C-- can create OBJ files with tiny or small memory model, with tiny

  being the default. To obtain a file with the small memory model start the

  compiler using the switches /obj and /exe.

 

      To create OBJ files for 32-bit DOS use the command-line switches /d32

  and /obj.  I was able to use the resulting OBJ files only with wlink and

  the DOS extender zrdx.exe.

 

      C-- provides no method of creating OBJ files for Windows.