Вопрос: почему приложение не может найти библиотеку DLL «boost_thread-vc100-mt-1_46_1.dll», если библиотека фактически установлена правильно, а другие приложения успешно ее используют?
Проблема: при запуске экземпляра моего приложения появляется следующее сообщение об ошибке:
«Программа не запускается, поскольку на вашем компьютере отсутствует boost_thread-vc100-mt-1_46_1.dll. Попробуйте переустановить программу, чтобы решить эту проблему. ”
Несколько причин, почему это сообщение смущает меня:
- dll присутствует в C: \ Program Files (x86) \ boost \ boost_1_46_1 \ lib
- Другой проект с аналогичными настройками работает правильно и создает
объекты boost :: thread успешно
- Когда я удаляю код, который создает объекты boost :: thread из моего приложения, появляется ошибка
сообщение не появляется.
Дополнительные детали:
Я занимаюсь разработкой приложения на C ++ / CLI с использованием MS VS 2010 с включенным CLR.
Я использую библиотеку Boost Thread (версия 1.46.1).
Следуя советам относительно сообщений об использовании Boost Thread и C ++ / CLI, я добавил следующий код в один из моих заголовочных файлов:
#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"
Я ценю любой совет, который вы можете дать. Спасибо.