[Distutils] DEF Files

M.-A. Lemburg mal@lemburg.com
Tue, 14 Sep 1999 12:13:41 +0200

Anthony Pfrunder wrote:
> On Tue, 14 Sep 1999, Robert Kern wrote:
> > FWIW, I agree with David that requiring modifying the source of an
> > extension is not a good thing.  It only adds a headache for people trying to port from *NIX to
> > Windows (and we have enough to deal with,
> > believe me), and it pollutes the code with weird MS extensions.
> ... and weird unix only utilites such as sed [sorry, my Windows side speaking]

I don't really get your points here... you can stick all those
weird symbols into macros and then forget about them.


#include "mxh.h"

...isn't all that bad and makes the intention pretty clear. Here's
the contents of mxh.h:

/* Macro to "mark" a symbol for DLL export */

#if defined(_MSC_VER) && _MSC_VER > 850 /* MS VC++ 2.0 and up */
# ifdef __cplusplus
#   define MX_EXPORT(type) extern "C" type __declspec(dllexport) 
# else
#   define MX_EXPORT(type) extern type __declspec(dllexport) 
# endif
#elif defined(__WATCOMC__)
#   define MX_EXPORT(type) extern type __export 
#   define MX_EXPORT(type) extern type

/* Macro to "mark" a symbol for DLL import */

#if defined(__BORLANDC__)
#   define MX_IMPORT(type) extern type __import
#elif defined(_MSC_VER) && _MSC_VER > 850 /* MS VC++ 2.0 and up */
# ifdef __cplusplus
#   define MX_IMPORT(type) extern "C" type __declspec(dllimport)
# else
#   define MX_IMPORT(type) extern type __declspec(dllimport)
# endif
#   define MX_IMPORT(type) extern type

BTW, additions to support more compilers are always welcome.
The above works for pretty much all Unix, Mac and Windows compilers
people have used to compile my extensions, so I guess its pretty

Marc-Andre Lemburg
Y2000:                                                   108 days left
Business:                                      http://www.lemburg.com/
Python Pages:                           http://www.lemburg.com/python/