Mail Archives: cygwin/2003/01/15/13:27:15
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
Output of cygcheck -s:
Cygwin Win95/NT Configuration Diagnostics
Current System Time: Wed Jan 15 07:03:32 2003
Windows 2000 Professional Ver 5.0 Build 2195 Service Pack 3
Path: C:\cygwin\usr\local\bin
C:\cygwin\bin
C:\cygwin\bin
C:\cygwin\bin
c:\WINNT\system32
c:\WINNT
c:\WINNT\System32\Wbem
c:\Jim\bin
c:\Program Files\Perforce
c:\WinUnix\bin
C:\cygwin\usr\X11R6\bin
SysDir: C:\WINNT\System32
WinDir: C:\WINNT
HOME = `c:\Jim '
MAKE_MODE = `unix'
USER = `jim'
Use `-r' to scan registry
c: hd NTFS 19053Mb 78% CP CS UN PA FC
d: cd N/A N/A
. /cygdrive user
textmode,cygdrive
C:\cygwin / system
textmode
c: /cygdrive/c system
textmode
C:\cygwin/bin /usr/bin system
textmode
C:\cygwin/lib /usr/lib system
textmode
C:\cygwin\usr\X11R6\lib\X11\fonts /usr/X11R6/lib/X11/fonts system binmode
. /cygdrive user
textmode,cygdrive
Found: C:\cygwin\bin\bash.exe
Found: C:\cygwin\bin\cat.exe
Found: C:\cygwin\bin\cpp.exe
Found: C:\cygwin\bin\find.exe
Found: C:\cygwin\bin\gcc.exe
Found: C:\cygwin\bin\gdb.exe
Found: C:\cygwin\bin\ld.exe
Found: C:\cygwin\bin\ls.exe
Found: C:\cygwin\bin\make.exe
Found: C:\cygwin\bin\sh.exe
58k 2002/05/07 C:\cygwin\bin\cygbz2-1.dll
6k 2002/06/24 C:\cygwin\bin\cygcharset-1.dll
847k 2003/01/09 C:\cygwin\bin\cygcrypto-0.9.7.dll
644k 2002/12/08 C:\cygwin\bin\cygcrypto.dll
136k 2002/10/17 C:\cygwin\bin\cygexpat-0.dll
50k 2002/03/17 C:\cygwin\bin\cygexslt-0.dll
45k 2001/04/25 C:\cygwin\bin\cygform5.dll
35k 2002/01/09 C:\cygwin\bin\cygform6.dll
19k 2002/02/20 C:\cygwin\bin\cyggdbm.dll
490k 2002/09/21 C:\cygwin\bin\cygguile-12.dll
488k 2002/07/18 C:\cygwin\bin\cygguile-14.dll
63k 2002/07/18 C:\cygwin\bin\cygguile-srfi-srfi-13-14-1.dll
63k 2002/09/21 C:\cygwin\bin\cygguile-srfi-srfi-13-14-v-1-1.dll
24k 2002/07/18 C:\cygwin\bin\cygguile-srfi-srfi-4-1.dll
24k 2002/09/21 C:\cygwin\bin\cygguile-srfi-srfi-4-v-1-1.dll
14k 2002/07/18 C:\cygwin\bin\cygguilereadline-14.dll
14k 2002/09/21 C:\cygwin\bin\cygguilereadline-v-12-12.dll
17k 2001/06/28 C:\cygwin\bin\cyghistory4.dll
20k 2002/10/10 C:\cygwin\bin\cyghistory5.dll
306k 2002/04/27 C:\cygwin\bin\cyghttpd.dll
929k 2002/06/24 C:\cygwin\bin\cygiconv-2.dll
22k 2001/12/13 C:\cygwin\bin\cygintl-1.dll
28k 2002/09/20 C:\cygwin\bin\cygintl-2.dll
21k 2001/06/20 C:\cygwin\bin\cygintl.dll
119k 2002/02/09 C:\cygwin\bin\cygjpeg6b.dll
59k 2002/09/20 C:\cygwin\bin\cygkpathsea-3-3-7.dll
32k 2003/01/04 C:\cygwin\bin\cygltdl-3.dll
26k 2001/04/25 C:\cygwin\bin\cygmenu5.dll
20k 2002/01/09 C:\cygwin\bin\cygmenu6.dll
156k 2001/04/25 C:\cygwin\bin\cygncurses++5.dll
175k 2002/01/09 C:\cygwin\bin\cygncurses++6.dll
226k 2001/04/25 C:\cygwin\bin\cygncurses5.dll
202k 2002/01/09 C:\cygwin\bin\cygncurses6.dll
15k 2001/04/25 C:\cygwin\bin\cygpanel5.dll
12k 2002/01/09 C:\cygwin\bin\cygpanel6.dll
40k 2001/11/21 C:\cygwin\bin\cygpcre.dll
39k 2001/11/21 C:\cygwin\bin\cygpcreposix.dll
175k 2002/07/22 C:\cygwin\bin\cygpng10.dll
22k 2002/06/09 C:\cygwin\bin\cygpopt-0.dll
108k 2001/06/28 C:\cygwin\bin\cygreadline4.dll
127k 2002/10/10 C:\cygwin\bin\cygreadline5.dll
66k 2001/11/20 C:\cygwin\bin\cygregex.dll
177k 2003/01/09 C:\cygwin\bin\cygssl-0.9.7.dll
165k 2002/12/08 C:\cygwin\bin\cygssl.dll
550k 2002/12/19 C:\cygwin\bin\cygtcl83.dll
12k 2002/12/19 C:\cygwin\bin\cygtclpip83.dll
253k 2002/02/10 C:\cygwin\bin\cygtiff3.dll
217k 2002/12/19 C:\cygwin\bin\cygtix4183.dll
830k 2002/12/19 C:\cygwin\bin\cygtk83.dll
633k 2002/07/22 C:\cygwin\bin\cygxml2-2.dll
152k 2002/03/17 C:\cygwin\bin\cygxslt-1.dll
15k 2002/03/17 C:\cygwin\bin\cygxsltbreakpoint-1.dll
50k 2002/03/12 C:\cygwin\bin\cygz.dll
880k 2002/12/25 C:\cygwin\bin\cygwin1.dll
Cygwin DLL version info:
DLL version: 1.3.18
DLL epoch: 19
DLL bad signal mask: 19005
DLL old termios: 5
DLL malloc env: 28
API major: 0
API minor: 69
Shared data: 3
DLL identifier: cygwin1
Mount registry: 2
Cygnus registry name: Cygnus Solutions
Cygwin registry name: Cygwin
Program options name: Program Options
Cygwin mount registry name: mounts v2
Cygdrive flags: cygdrive flags
Cygdrive prefix: cygdrive prefix
Cygdrive default prefix:
Build date: Wed Dec 25 15:37:50 EST 2002
Shared id: cygwin1S3
41k 2002/05/14 C:\cygwin\usr\X11R6\bin\cygPropList-0.dll
Cygwin Package Information
Package Version
ELFIO 1.0.0-1
WindowMaker 0.80.0-2
XFree86-base 4.2.0-1
XFree86-bin 4.2.0-2
XFree86-etc 4.2.0-1
XFree86-fenc 4.2.0-2
XFree86-fnts 4.2.0-2
XFree86-lib 4.2.0-3
XFree86-startup-scripts4.2.0-3
XFree86-xserv 4.2.0-15
_update-info-dir 00120-1
apache 1.3.24-5
ash 20020731-1
astyle 1.15.3-3
autoconf 2.54-1
autoconf-devel 2.57-1
autoconf-stable 2.13-4
automake 1.7.1-1
automake-devel 1.7.2-1
automake-stable 1.4p5-5
base-files 1.1-1
base-passwd 1.0-1
bash 2.05b-8
binutils 20021117-1
bison 1.75-1
byacc 1.9-1
bzip2 1.0.2-2
ccache 1.9-1
clear 1.0-1
crypt 1.0-1
ctags 5.2-1
cvs 1.11.0-1
cygutils 1.1.3-1
cygwin 1.3.18-1
cygwin-doc 1.2-1
dejagnu 20021217-2
diff 1.0-1
diffutils 2.8.1-1
dpkg 1.10.4-2
enscript 1.6.3-3
expat 1.95.5-1
expect 20021218-1
file 3.37-1
fileutils 4.1-1
findutils 4.1.7-4
flex 2.5.4-2
gawk 3.1.1-5
gcc 3.2-3
gcc-mingw 20020817-5
gdb 20021218-1
gdbm 1.8.0-4
gettext 0.11.5-1
gettext-devel 0.11.5-1
gperf 2.7.2-1
grep 2.5-1
groff 1.18.1-2
gsl 1.3-1
guile 1.6.0-1
guile-devel 1.6.0-1
gzip 1.3.3-4
indent 2.2.8-1
inetutils 1.3.2-20
jpeg 6b-7
less 378-1
libPropList 0.10.1-3
libbz2_1 1.0.2-2
libcharset1 1.8-2
libguile12 1.6.0-1
libguile14 1.5.6-5
libiconv 1.8-2
libiconv2 1.8-2
libintl 0.10.38-3
libintl1 0.10.40-1
libintl2 0.11.5-1
libkpathsea3 20020911-1
libltdl3 20030103-1
libncurses5 5.2-1
libncurses6 5.2-8
libpng10 1.0.14-2
libpopt0 1.6.4-4
libreadline4 4.1-2
libreadline5 4.3-2
libtool 20020705-1
libtool-devel 20030103-1
libtool-stable 1.4.3-1
libxml2 2.4.23-1
libxslt 1.0.13-1
links 0.96-1
login 1.7-1
lynx 2.8.4-5
m4 1.4-1
make 3.79.1-7
man 1.5j-1
mingw-runtime 2.3-1
mktemp 1.4-1
mod_auth_ntsec 1.7-1
mod_dav 1.0.3-1.3.6-1
mod_ssl 2.8.8-1.3.24-1
ncftp 3.1.4-1
ncurses 5.2-8
newlib-man 20020801
openbox 0.99.1-3
openssh 3.5p1-3
openssl 0.9.7-1
openssl-devel 0.9.7-1
openssl096 0.9.6h-1
pcre 3.7-1
perl 5.6.1-2
pkgconfig 0.14.0-1
popt 1.6.4-4
postgresql 7.3.1-1
rcs 5.7-3
readline 4.3-2
regex 4.4-2
rsync 2.5.5-2
sed 4.0.5-1
sh-utils 2.0.15-3
sharutils 4.2.1-2
swig 1.3.16-1
tar 1.13.25-1
tcltk 20021218-1
termcap 20020930-1
terminfo 5.2-3
tetex-devel 20020911-1
texinfo 4.2-4
textutils 2.0.21-1
tiff 3.5.7-1
time 1.7-1
unzip 5.50-1
vim 6.1-2
w32api 2.1-1
which 1.5-1
zip 2.3-2
zlib 1.1.4-1
Use -h to see help about each section
--
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 -