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: Urgent !!! Reg Linking sybase DLL in cygwin..

2008/5/27 Mani kandan <>:
> I keep forgetting it can do that these days :(
>> The only real reason you need an import library is if
>> you're doing things like adding aliases for symbol names, or you need to
>> remove stdcall name decorations.  (Or if you need the name indirection
>> that an import library provides, e.g. being able to have -lfoo refer to
>> libfoo.dll.a which refers to cygfoo-12.dll.)  But if you simply want to
>> link against a DLL you can do so directly without any of the mess of
>> pexports or def files or import libs or whatnot.
>  Perhaps it's time that OP explain exactly /what/ the problem is; I did
> assume that a straightforward "-lfoo" must already have not worked in some
> way.  Mani?
> =================================================
> Hi,
>   Yes, I am not able to link directly sybase .dll in g++ compiler in cygwin.
>   I have created .def file with help of dumpbin command. I have
> modified the .def file.
>   My .def file will be
>        JagCppProcess_main
>        delete_JagCppProcess
>        new_JagCppProcess
>        new_JagSIOPStream
>   With help of dlltool command i have created .a file also. Now i can
> able to link and
>   i got the EXE also. But while running the exe, i got the error message
>   _cygtls::handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
>   I want to clarify the following things
>   (i) Can i use dumpbin to get the .def file?
>   (ii) Why the exception thrown ?
>   But when i run the same sample code arith.cpp in windows
> environment, i am getting the result.

You are meaning with MSVC?
Or with mingw32 g++?

You cannot link a c++ dll with a different compiler / linker at all in general.
If this sybase.dll was not generated with the cygwin g++, you will not be able
to link to it with the cygwin g++.
There is the simple name mangling issue which you circumvented with
the explicit .def file,
and there is  the conflict of underlying exceptions and memory models.
A new/free in the sybase dll will not cooperate with a cygwin
new/free. A sybase.dll exception will not be caught
by your cygwin app.

If it was generated with MSVC you have to use MSVC.

Ask your vendor for a cygwin dll or sourcecode.
Reini Urban

Unsubscribe info:
Problem reports:

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