public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: "David Westbury" <David.Westbury@ipaper.com>
To: cygwin@cygwin.com
Subject: Linking to commercial dll's
Date: Sun, 11 Nov 2001 08:26:00 -0000	[thread overview]
Message-ID: <OF8B6193A7.B4A10832-ON85256AFF.004E05C7@ipaper.com> (raw)

I'm attempting to link a C program that I've written to a commercial dll
(non-MS) using gcc in cygwin. I've read about everything I can find about
dll's but I can't seem to make my program access functions in the dll
correctly. My program compiles/links without errors using gcc, and even
runs correctly to some extent. Some functions work, others don't. The
functions that don't work seem to corrupt memory as evidenced by changes in
random variable values. This occurs even when the function return status
indicates success. The commercial package provides a ".dll" file, a ".lib"
file, and a ".h" file. These are obviously intended for use in a Windows
programming environment. I would appreciate if someone knowledgable would
tell me what steps would typically be required to link a program to a well
established commercial dll. For example, what might a typical gcc string
look like? Do gcc switches like "-L", and "-l" apply? Should I be linking
to the .dll or the .lib file?

Dll's seem to be an especially difficult subject in cygwin, requiring
detailed knowlege of the MS way of doing things. Are dll's not
standardized? Is a "cookbook" approach to dll linking not possible? The
issue seems to be a steep hill for an average working programmer, like me,
to climb. This limits the usefulness of cygwin as a programming environment
for me.

BTW, is cygwin intended for MS programmers wanting to explore the Unix
world or is it of more interest to Unix programmers who, like me, have an
occasional need to run Unix programs on Windows?  Programmers coming from
Unix typically won't know much about dll's so a little more introductory
documentation or pointers to such material would seem appropriate for the
cygwin site. I've been to the bookstores and haven't found much help there,
even in Windows programming texts. Apparently dll's simply work correctly
in Windows and require little explanation. One text did say something that
seemed to indicate that I should be linking against the .lib file as it
contains pointers into the .dll fine. This doesn't work for me at all
however.

Here's the gcc string I'm using that results in a partially working
executable:

gcc -g myprog.c  -o myprog  /<path to commercial dll>/filename.dll

Any help or pointers to information would be greatly appreciated.

thanks,
david




--
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/

             reply	other threads:[~2001-11-15 16:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-11  8:26 David Westbury [this message]
2001-11-11  8:26 ` Ralf Habacker
2001-11-11  8:26   ` Ralf Habacker
2001-11-11  8:26     ` Tim Prince
2001-11-11  8:26   ` Ralf Habacker
2001-11-11  8:26 ` Charles Wilson
  -- strict thread matches above, loose matches on Subject: below --
2001-11-11  8:26 David Westbury

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=OF8B6193A7.B4A10832-ON85256AFF.004E05C7@ipaper.com \
    --to=david.westbury@ipaper.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).