[Fribidi-discuss] EXPORT_C and IMPORT_C

Omer Zak omerz at actcom.co.il
Mon Feb 25 16:04:02 EST 2002


Once the FriBidiEnv patch is incorporated into the standard source code
database, there will be only two items, which are specific to the Symbian
EPOC 6 port, and which require source code files to be modified (except
for fribidi_env.h,fribidi_env.c, which are port-specific anyway).

One of them is that FriBidiChar has to be typedef'ed as uint16 rather than
as uint32 (to avoid wasteful conversions from & into native EPOC
datatypes).  Not a big problem - change in just one place.

The other item, which is more problematic, is that all exported functions
in *.c files have to be defined with the EXPORT_C keyword, and the
corresponding functions in *.h files - with the IMPORT_C keyword.

Those keywords will be necessary for both EPOC and MS-Windows DLL builds.

Any ideas how to cater to those ports without incurring the following
disadvantages:
1. Wasteful wrapper code (especially, function calls with long argument
   lists).
2. Cluttered code for ports, which don't need those keywords.

For example, will it be OK if the following keywords are used to flag
functions intended for use by code outside of the FriBidi package:
PUBLIC_FUNCTION_DEFINITION  - to be #define'd as EXPORT_C in EPOC ports
                              and as nothing in other ports.
PUBLIC_FUNCTION_DECLARATION - to be #define'd as IMPORT_C in EPOC ports
                              and as nothing in other ports.

Does anyone have a better idea?
                                             --- Omer
WARNING TO SPAMMERS:  see at http://www.zak.co.il/spamwarning.html





More information about the FriBidi mailing list