Main Page Cookbook/Overview ImageMeister the jcprops file Licensing Binary Installation & Configuration [ Win · Mac · Nix · OSX ] Changes Public API Source Code Main Page Java [ Common · Win · Mac · Nix ] Native Code [ Common · Win · Mac · Nix ] Manifest Native Code Overviews [ Common · Win · Mac · Nix · Strings ] Macros [ General · Native Macros ] Walkthroughs [ Java only · Java and native ] Building [ Win · Mac · Nix · OSX ] Distribution Issues

# Macros and Defines

This file describes general macros and global defines.

## Macros

In addition to the native macros, macros are defined for working with CDateBundle's, CStringVector's, and CStr's. Mac-specific macros are also defined for working with CFSpec's.

The CStr macros are described in strings.html, as well as in the CStrA and CStrW header files.

The CDateBundle macros are described in the CDateBundle header file.

The CStringVector macros are described in the CStringVector header file.

The Mac-only CFSpec macros are described in the CFSpec header file.

## Defines

The following defines are used to control various aspects of compilation.

- DO_JNI (defined for JNI builds)
- DO_JRI (defined for JRI builds)
- DO_RNI1 (defined for RNI builds using MSVM SDK 1.5 or less)
- DO_RNI2 (defined for RNI builds using MSVM SDK 2.0 or greater)
- DO_JDK10 (not used)

These control which native architecture is used.

On Mac, the appropriate value is set in the files in the 'meta' folder: 'meta_inc_CWS.h', etc. Those files are preprocessed by the CodeWarrior project. If you compile using a different compiler or project, you need to set the appropriate symbols from those files.

On Windows, the appropriate value is set in the 'Preprocessor Definitions' box, which is in the C++/general section of the 'Project Settings' dialog. This dialog is reachable from the 'Build:Settings' menu.

On Linux, the appropriate value is set in the shell script used to build the shared object.

- __linux__
- macintosh
- _WIN32

These values should be set by the compiler, and indicate which platform we're running on.

- USING_UNICODE_ON_W95_FOR_TESTING_ONLY

This Windows-only value enables a Unicode build which will run on Win95. See the file 'files\win\unicodeOn95.h' for details

- DO_SEH

Windows-only. If defined, each native stub is surrounded by an SEH frame. This is set in the same location as the 'DO_JNI', etc. values.

If this is not defined, the routines in AppUtilsMSVM.cpp are the actual native code entry points.

If this is defined, the native code entry points are contained in the file 'sehstubs.cpp'. These routines set up an SEH frame, and call through to the corresponding routines in the AppUtilsMSVM.cpp file

- UNICODE
- _UNICODE

Windows-only. If defined, we're building for WinNT. This is set in the same location as the 'DO_JNI', etc. values.

- RNIVER

Windows-only. This value is defined in the MSVM SDK 2.0 or greater, and is only used in DO_RNI2 builds. This is the value which will be returned from the exported routine 'RNIGetCompatibleVersion'.

- __MWERKS__

Windows-only. While JConfig no longer supports building the DLLs using Metrowerks, this is still kept in CStrA for old times sake.

Main Page · JConfig · ImageMeister · System Properties Repository · WordMeister · Free Samples · Java Freeware · Contact Us · FAQ · Links

Copyright (c) 1997-2002 Samizdat Productions. All Rights Reserved.
WarpMovie, TileMovie, JConfig, ImageMeister and MovieShredder are Trademarks of Samizdat Productions.