OpenSSL DLL problem

Discussion of open issues, suggestions and bugs regarding PgDAC (PostgreSQL Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
snorkel
Posts: 384
Joined: Tue 08 Aug 2006 15:10
Location: Milwaukee WI USA

OpenSSL DLL problem

Post by snorkel » Fri 26 Dec 2008 23:49

Hi,
My app uses open ssl DLLs compiled with mingw and they are named:

libssl32.dll and libeay32.dll

The current build does not seem to recognize libssl32.dll

When compiled with mingw they are always named this way.

I have the two DLLs in my app directory and I get this error:

First chance exception at $7C812AEB. Exception class EOSError with message 'OpenSSL client library couldn't be loaded. Please place libeay32.dll and ssleay32.dll to system folder (included to PATH) or to the folder with executable unit of main program.'. Process pg_lightning_admin.exe (1004)

You can't just rename the dlls as they are dependent on each other with the names they where compiled with.

Thanks,

Snorkel

Dimon
Devart Team
Posts: 2890
Joined: Mon 05 Mar 2007 16:32

Post by Dimon » Mon 29 Dec 2008 12:38

The point is that ssleay32.dll is the standard name of the OpenSSL library, therefore PgDAC tries to load a library with this name.
However we will fix this problem and will add the possibility to use the libssl32.dll name instead of ssleay32.dll. This fix will be included in the next PgDAC build.

snorkel
Posts: 384
Joined: Tue 08 Aug 2006 15:10
Location: Milwaukee WI USA

Post by snorkel » Mon 29 Dec 2008 20:19

Dimon wrote:The point is that ssleay32.dll is the standard name of the OpenSSL library, therefore PgDAC tries to load a library with this name.
However we will fix this problem and will add the possibility to use the libssl32.dll name instead of ssleay32.dll. This fix will be included in the next PgDAC build.
Hi Thanks,

ssleay32.dll is the name when compiled with MS VC++, however when you compile it with mingw the default name is libssl32.dll. Why this is I have no idea, but in the wild you will see both names used extensivly.
I guess the standard pratice is to do a loadlibrary with the first name and if that failes then do it again with the second name.

Thanks,

Snorkel

Post Reply