Problems using a DLL with Cygwin 64 bit
Thu Dec 17 11:00:00 GMT 2015
Windows 7 (64 bit)
Cygwin 64 bit
GCC version: 4.9.3
To make use of a Prosilica camera, I am having to build applications using an
externally supplied DLL (from the camera manufacturer, with no source code) in
Cygwin64 and Cygwin32. I am using the appropriate 32 or 64 bit version of the DLL,
The most difficult problem encountered is when using Cygwin 64 bit. I was initially
unable to link but, using pexports and dlltool, I managed to create a .lib file with
which I linked OK. This got rid of the initial link failure message "error adding
symbols: File in wrong format."
But having linked successfully, the application now crashes on startup:
6 [main] prosilicaApp (96896)
*** fatal error - cygheap base mismatch detected - 0x1802FA400/0x6EA400.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version. The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution. Rebooting is also suggested if you
are unable to find another cygwin DLL.
The reference to cygwin DLL in the long error message appears spurious - there is
only one cygwin DLL in my system and there are no problems running other Cygwin
applications in the same environment.
I have tried with 2 different versions of the manufacturer's DLL. The same error
occurs, but with different addresses shown in the "mismatch detected" message.
The error does not occur with a 32 bit Cygwin installation.
Any idea why this error is occurring only with 64 bit Cygwin?
(Observatory Sciences Ltd)
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin