title: no OPENSSL_Applink runtime error
body: <p>An update to my question below:  I am trying to do something - anything -
  to get d2i_PKCS12_fp() to work.  I am now calling it from a new dll that
  is compiled with /MD.  There is no change.  Here is my code:</p>
  
  <pre><code>#include &lt;openssl\applink.c&gt;
  CRYPTO_malloc_init();
  OpenSSL_add_all_algorithms();
  fptr = fopen(p12_file, "rb");
  if (fptr == NULL) return(FALSE);
  d2i_PKCS12_fp(fptr, &amp;p12_cert);
  fclose(fptr);
  </code></pre>
  
  <p>The call to d2i_PKCS12_fp() always produces the no OPENSSL_Applink runtime
  error. If anybody can shed some light on this I would appreciate it.</p>
  
  <p>--- original question ----</p>
  
  <p>I am attempting to use the d2i_PKCS12_fp() API call in a Windows DLL
  compiled with the multi-threaded (/MT) runtime library.  On this call I
  get the runtime error "OPENSSL_Uplink(03CE1000,08): no OPENSSL_Applink".
  From discussions I have seen about this error, I thought I could fix it by
  adding "applink.c" to my project, and calling CRYPTO_malloc_init(). 
  However this has no effect.  Is use of /MT causing this?  It will be
  difficult to change that, due to other components of the project.  I have
  used the HMAC and SHA256 APIs in this project with no problem.  If it is
  just file I/O causing the problem, is there a way that I can
  read in the .p12 file myself, and just pass a buffer to OpenSSL in order
  to initialize the PKCS12 structure?  I am using MSVC 2010.</p>