This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

why use __stdcall?


When using Cygwin to produce DLLs for use in other software (Excel,
TradeStation, Maple), etc., is it necessary to insert __stdcall between
types/typedefs and function names?  I'm just considering vanilla C code
that runs on all platforms I've tested.

If so, is it necessary to introduce __stdcall for all functions, or only
those that are actually called by those utilities (and these call other
C functions, etc.).  I.e., do I have to rewrite lots of good working C
code to introduce __stdcall throughout all code?

If I do not use __stdcall (I do not seem to need this for simple cases?),
what dangers lurk?

To be explicit, I am creating DLLs and .def files using scripts like:
set module = mydll
gcc -c ${module}.c
set old_lib = ${module}.o
gcc -shared -mno-cygwin -o ${module}.dll \
    -Wl,--out-implib=lib${module}.a \
    -Wl,--export-all-symbols \
    -Wl,--export-dynamic \
    -Wl,--add-stdcall-alias \
    -Wl,--enable-auto-import \
    -Wl,--output-def=${module}.def \
    -Wl,--whole-archive ${old_lib} \
    -Wl,--no-whole-archive ${dependency_libs}

Thanks.

Lester


-- 
 Prof. Lester Ingber  ingber at ingber dot com  ingber at alumni dot caltech dot edu
 www.ingber.com                     www.alumni.caltech.edu/~ingber

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]