This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: device drivers - general info

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:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]