This is the mail archive of the
mailing list for the Cygwin project.
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
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.
Lead Realtime Software Engineer
VITAL - Visual Simulation Systems
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