Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Subject: Linking to commercial dll's To: cygwin AT cygwin DOT com X-Mailer: Lotus Notes Release 5.0.6a January 17, 2001 Message-ID: From: "David Westbury" Date: Thu, 15 Nov 2001 11:10:31 -0500 X-MIMETrack: Serialize by Router on SWMTA1.ipaper.com/IPAPER(Release 5.0.8 |June 18, 2001) at 11/15/2001 10:55:06 AM MIME-Version: 1.0 Content-type: text/plain; charset=us-ascii 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 //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/