title: Why would an application not find the DLL “boost_thread-vc100-mt-1_46_1.dll”?
body: <p>Question: why would an application not find the DLL “boost_thread-vc100-mt-1_46_1.dll” when the DLL is in fact properly installed, and other applications use the DLL successfully?</p>
  
  <p>Problem: when starting an instance of my application, the following error message appears:
  “The program can’t start because boost_thread-vc100-mt-1_46_1.dll is missing from your computer. Try reinstalling the program to fix this problem.”</p>
  
  <p>Several reasons why this message confuses me: </p>
  
  <ol>
  <li>The dll <em>is</em> present in C:\Program Files(x86)\boost\boost_1_46_1\lib</li>
  <li>Another project with similar settings runs properly and does create
  boost::thread objects successfully</li>
  <li>When I remove the code that creates boost::thread objects from my application, the error
  message does not appear.</li>
  </ol>
  
  <p>Additional details: 
  I am developing a C++/CLI application using MS VS 2010 with CLR enabled.</p>
  
  <p>I am using the Boost Thread library (version 1.46.1).</p>
  
  <p>Following the advice on posts about using Boost Thread and C++/CLI, I added the following code to one of my header files:</p>
  
  <pre><code>#if defined(_MANAGED)
  #define BOOST_USE_WINDOWS_H
  #endif
  
  #define BOOST_THREAD_USE_DLL
  
  #include "boost/thread.hpp"
  namespace boost {
      struct thread::dummy {};
  }
  
  #pragma warning(push) 
  #pragma warning(disable:4793) 
  #include "boost/thread/mutex.hpp"
  #pragma warning(pop)
  
  #include "boost/thread/locks.hpp"
  </code></pre>
  
  <p>I appreciate any advice you may have. Thank you.</p>