Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Info: This message was accepted for relay by smtp03.mrf.mail.rcn.net as the sender used SMTP authentication X-Trace: UmFuZG9tSVZWprWUfSmUbXK+C5NpCn9a/rk8zAa8IWQWhfbyWXD/+i82tstT+YCg Message-ID: <3ECAD160.8000807@rfk.com> Date: Tue, 20 May 2003 21:07:44 -0400 From: "Larry Hall (RFK Partners, Inc.)" Reply-To: lhall AT rfk DOT com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Graham Cox CC: cygwin AT cygwin DOT com Subject: Re: DirectX and Cygwin References: <002f01c31f25$e1532740$0100a8c0 AT sazzer> In-Reply-To: <002f01c31f25$e1532740$0100a8c0@sazzer> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Graham Cox wrote: > I know this has come up a few times in the past - I've just spent the last > couple of hours reading the archives - but I haven't found anything that > will actually solve the problem yet... > > I'm starting to play around with DirectX programming. I've just downloaded > the DX9 C++ SDK, and discovered that I can't use it under Cygwin quite as > easily as I'd hoped. Compiling works fine, but linking complains that it > can't find the functions in the libraries. I know that it's finding the > libraries because I tried moving d3d9.lib and then got a different error. > > As far as I can tell, g++/ld is trying to find Direct3DCreate9 AT 4 in the > library, when in fact it's called Direct3DCreate9. Also, as far as I can > tell it should be able to cope with this because I've tried using > the --enable-stdcall-fixup flag for ld, but with the exact same errors. > > Basically what I'm after is if anyone knows how to either link against the > VC++ libraries properly, or else a way of producing my own GCC libraries > from these ones. One of the archive messages had a little script involving > nm, sed and dlltool which produced libraries I could link against fine, but > couldn't actually run the program with because all of the function pointers > were to 0x00000000 instead of real addresses. > > Any help would be much appreciated So if --enable-stdcall-fixup isn't getting you what you want/need, why not do it the "old-fashioned" way and simply declare the prototypes for the needed functions with the correct calling convention? It's a little more work but you're sure to get what you need. -- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 838 Washington Street (508) 893-9889 - FAX Holliston, MA 01746 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/