This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: DLL's for Dummies
- To: David Westbury <David dot Westbury at ipaper dot com>
- Subject: Re: DLL's for Dummies
- From: Charles Wilson <cwilson at ece dot gatech dot edu>
- Date: Tue, 06 Nov 2001 11:24:12 -0500
- CC: cygwin at cygwin dot com
- References: <OF277487F1.DD007F3A-ON85256AFC.004B9C63@ipaper.com>
Where are you getting the declarations of the functions within the dll
(e.g. the header files)? It sounds like myprog.o is getting compiled
without declaring the functions/variables imported from the DLL as
"__declspec(dllimport)". This omission *could* cause the problems you are
seeing.
If you are using "MSVC-ish" header files that came with your third party
DLL, you *MAY* need to rewrite them somewhat for use with cygwin.
--Chuck
David Westbury wrote:
> I recently got started with Cygwin. What a great package! Coming from a
> Unix programming background I'm completely in the dark about DLL's. I need
> to write C programs that access a third party API. I'm experimenting with
> gcc but having disappointing results. I'm trying to compile and run an
> example C program that came with the third party API package. Although I
> don't know how to compile a program against a DLL I've found that the gcc
> string below results in an error free compile/link. The resulting
> executable runs to some degree. Some API calls execute correctly. However
> using the gdb debugger it appears that random memory locations are being
> modified as I step through the program. The program employs elements of a
> structure as arguments to the API calls. The debugger shows that, in
> addition to modifying the correct structure elements, random elements of
> the structure are also being modified as I step over many of the API calls.
> Also memcpy() appears to produce similar memory corruption. I'm hoping this
> will ring a bell with someone who can guide me in the right direction.
>
> Here is the gcc string I'm using:
>
> gcc -g myprog.c -o myprog /path to third party dll/api.dll
>
> I've been working with this for days. Forgive me if I haven't read the
> right FAQ or documentation. I've scanned about everything I can find. Any
> help would be greatly appreciated. Thanks.
>
>
>
> --
> 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/
>
>
--
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/