Is libssl32.dll possibly the poster's DLL that he refers to in his note? > The code for "uplink" looks to me like it looks for _Applink ONLY in the .exe
It *HAS* to be a .exe? OpenSSL has logic that depends on what type of executable is calling it? If I had a .exe that worked with OpenSSL I could not necessarily turn it into a .DLL that exported services to calling programs? Charles -----Original Message----- From: owner-openssl-us...@openssl.org [mailto:owner-openssl-us...@openssl.org] On Behalf Of Dave Thompson Sent: Wednesday, October 24, 2012 12:19 PM To: openssl-users@openssl.org Subject: RE: Trouble with Windows DLL >From: owner-openssl-us...@openssl.org On Behalf Of Mitchell, Daniel F >Sent: Tuesday, 23 October, 2012 15:05 >I am trying to use openssl in a Windows DLL. However, on the first >openssl call I make after these: >CRYPTO_malloc_init(); >OpenSSL_add_all_algorithms(); >I get the "no OPENSSL_Applink" error. I read the FAQ, and I have >compiled with /MD, I have included applink.c in my code (and it is a c >program, so no extern), and I have the latest versions of libeay32.dll, >libssl32.dll, and ssleay32.dll in the sys32 folder, Aside: The openssl libraries on Windows are libeay32 and ssleay32. I don't know what libssl32 is. >where my dll is. My dll is being called by a windows executable, so I >don't know if that could have anything to do with it, since I have no >real control over that. This probably doesn't work. The code for "uplink" looks to me like it looks for _Applink ONLY in the .exe. If you supply your library to be *static* linked with the app it should work, but you get all the features of static linking, good and bad -- bigger .exe (rarely matters nowadays); possible name conflicts; can't update separately. Otherwise you must avoid all openssl calls that use uplink/applink; basically this is anything that uses a FILE* opened by your program. If you handle the file I/O yourself -- for example, read a DER cert file into memory and call d2i_X509 instead of opening the file and calling d2i_X509_fp, OR you have openssl *open* the files by explicitly calling BIO_new_file or equivalent and using the BIO* instead of using any FILE*, it should be okay. ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org