Mail Archives: cygwin/2003/01/16/19:52:39
After carefully inspecting the symbols from
generated dlls and dlls provided by TradeStation,
I found that symbols occurred with and without the
@decorations. e.g. PPI AT 4 and PPI.
Adding -Wl,--add-stdcall-alias to the gcc line,
all worked fine.
Could this generally be a requirement for dlls
that are opened at runtime in a fashion similar to
dlopen? If so, then some FAQ annotation would be
in order here:
http://www.cygwin.com/cygwin-ug-net/dll.html
Jim
Jim Kleckner wrote:
> I'm using a program called TradeStation that allows
> specifying a path name to a DLL, specifying the
> signature of a function to call, and then
> loading/calling that function. The documentation is
> very sparse for how to do this and probably built in
> some way that depends in an obscure way on having a
> Microsoft compiler such as VisualC++ or VisualBasic to
> work properly. I am trying to use GCC under cygwin to
> create a DLL that will dynamically open and running
> into roadblocks.
>
> A simple test file test.cpp:
> #include "windef.h"
> extern int __stdcall PPI(int);
>
> __declspec(dllexport) int __stdcall PPI(int notused)
> {
> return 1;
> }
>
> commands used:
> gcc -shared -mno-cygwin -Wl,--export-dynamic
> -Wl,--export-all-symbols -c vmi.cpp
> dlltool -e exports.o vmi.o -l vmi.lib
> gcc -shared -mno-cygwin -Wl,--export-dynamic
> -Wl,--export-all-symbols -shared exports.o vmi.o -o vmi.dll
>
> The program just says "can't load user function".
>
> I have tried various combinations of commands but am
> wondering if there is something I'm missing. I'm
> hoping to avoid getting out the ancient copy of VC5
> from my shelf...
>
> I will append cyg
>
> Thanks - Jim
>
>
> Resources for future travelers down this path:
>
> I have looked at a variety of sources describing
> using cygwin/gcc tools to build DLLs.
>
> The manual is here:
> http://www.cygwin.com/cygwin-ug-net/dll.html
>
> This message contains a bug report with a complex
> example that is interesting to examine:
> http://www.cygwin.com/ml/cygwin/2000-05/msg00663.html
>
> This one describes a "ld/dlltool/ld/dlltool/ld trick":
> http://www.cygwin.com/ml/cygwin/2002-08/msg01002.html
> It suggests that what I am trying to do should be
> possible by just using the -shared flag.
>
> Christopher Faylor indicates that the cygwin dll
> cannot be linked at runtime because it is broken:
> http://www.cygwin.com/ml/cygwin/2002-08/msg01042.html
>
> The dllhelpers stuff is also useful:
> http://www.neuro.gatech.edu/users/cwilson/cygutils/dll-stuff/index.html
>
>
> [snip]
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -