delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/02/06/16:05:16

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Date: Wed, 6 Feb 2002 13:04:30 -0800
From: Wade Brainerd <wadeb AT wadeb DOT com>
X-Mailer: The Bat! (v1.53d)
Reply-To: Wade Brainerd <wadeb AT wadeb DOT com>
Organization: Treyarch Inc
X-Priority: 3 (Normal)
Message-ID: <39141417843.20020206130430@wadeb.com>
To: "Barubary" <barubary AT cox DOT net>
CC: cygwin AT cygwin DOT com
Subject: Re[2]: DirectX8/DirectInput + cygwin
In-Reply-To: <02f301c1aefe$fe475b20$a7eb0544@CX535256D>
References: <002301c1aef8$228e5440$2801a8c0 AT dcuthbert2k>
<02f301c1aefe$fe475b20$a7eb0544 AT CX535256D>
MIME-Version: 1.0

By the way, you can access the DirectX C interfaces (or any COM interface
for that matter) from C++ by #defining CINTERFACE before including the
header containing the interface.

Also, you don't have to use lpVtable, you can always use the macros they
provide (your preference).

-Wade

Wednesday, February 06, 2002, 3:11:14 AM, you wrote:

B> Getting DirectX to work from cygwin GCC essentially can't be done from C++,
B> but can be done from C.  It can't be done from C++ because of the way COM
B> virtual tables work.  GCC can't clone Visual C++'s method because Microsoft
B> holds a U.S. patent on their exact method.  Just try using MFC from GCC and
B> you'll know exactly what I mean.

B> In C, the virtual table system is done by actually creating the vtable
B> structure in the header file, so this isn't a problem.  If you modify the
B> DirectX header files, you could fix this for C++, but you'd have to
do ->>lpVtable all the time, like in C.

B> GCC, or rather binutils, can't handle the Microsoft import library format.
B> binutils of course has its own, so you could make your own from the DLL.

B> If import libraries don't work, you could always GetProcAddress on
B> DirectInputCreate8 after loading dinput8.dll.  Then the problem becomes how
B> to get to the weird global functions (D3DX matrix stuff, for instance).

B> -- Barubary

B> ----- Original Message -----
B> From: "Dylan Cuthbert" <dylan AT q-games DOT com>
B> To: "Cygwin AT Cygwin. Com" <cygwin AT cygwin DOT com>
B> Sent: Wednesday, February 06, 2002 2:22 AM
B> Subject: DirectX8/DirectInput + cygwin

>> When compiling a DirectInput8 function such as DirectInput8Create() I get
B> an
>> error linking:
>> Unable to resolve DirectInput8Create AT 20



B> --
B> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
B> Bug reporting:         http://cygwin.com/bugs.html
B> Documentation:         http://cygwin.com/docs.html
B> 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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019