On Thu, 26 Oct 2006, Larry Hall (Cygwin) wrote: > George Locke wrote: > > On 10/25/06, Gary R. Van Sickle wrote: > >> > From: George Locke > >> > Sent: Wednesday, October 25, 2006 1:48 PM > >> > > >> > I wish to create a C++ program that communicates with a > >> > windows device driver (for a PCI card that interfaces with > >> > external electronics). > >> > The maker of the driver has provided a C++ library that > >> > allows me to write C++ programs that communicate with the PCI > >> > card, and i know that this works in regular windows, but i am > >> > feeling unsure about whether it will work in Cygwin. > >> > >> If the C++ library is not provided in source-code form, you're pretty > >> much out of luck, due to name-mangling differences and other issues. > >> If they're giving you a C++ source library that ultimately > >> communicates with the kernel-level driver via normal Win32 > >> filehandles and/or IOCTLs, I would say, "if you've followed me so > >> far, in general this kind of thing can be made to work, but be > >> prepared to roll up your sleeves, because odds are that the code was > >> written for Visual Studio." > >> > > the header for the for the external library does exist as source code, > > eg #include "foo.h" where foo.h is C++ source code, but the functions > > aren't defined within that file (just prototyped), and afaik they are > > not defined anywhere in raw source code format. If that is good > > enough then i have a place to start. > > No. You'll need to use the same C++ compiler as was used to generate this > library.
Or, to add a messy but sometimes useful option not previously directly mentioned in this thread, use the same C++ compiler as was used to generate this library to create an extern C wrapper API. The C wrapper API may then be called from Cygwin (gcc) C or C++ code. -- Brian Ford Lead Realtime Software Engineer VITAL - Visual Simulation Systems FlightSafety International the best safety device in any aircraft is a well-trained crew... -- 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/