Я получаю утверждение в dllinit.cpp, когда пытаюсь использовать Boost.Log в одной из моих библиотек DLL.
У меня есть tools.dll, который содержит мою возможность ведения журнала, и я попытался реализовать запись вещей с помощью Boost.Log.
На этот файл tools.dll ссылается другой файл helper.dll, и в приложении используются обе библиотеки DLL.
Однако, когда я запускаю приложение, я получаю ASSERT.
Это происходит с Boost 1.54 и (включая) Boost.Log, а также с Boost 1.48 и Boost.Log 1.1.
Я копался во многих списках рассылки и старых сообщениях. Что я понял до сих пор, есть проблема с указателем _pRawDllMain в Boost. Thread, некоторые предложили закомментировать его в
#include <boost/thread/detail/tss_hooks.hpp>
но это приводит к утечкам памяти?
это нить сказал, что это будет исправлено после 1.40, но я не знаю, было ли это сделано.
Динамическое связывание с Boost как предложено Вот не помогло.
Спрашивая повышения пользователей пока не помогло.
Любые намеки, что я должен проверить?
РЕДАКТИРОВАТЬ:
Он настроен как стандартная DLL, но есть зависимость от MFC100.dll, потому что я использую API из afxwin.h для получения информации о версии приложений.
Поэтому я удалил зависимость от MFC100.dll (GetVersionInfo работает без afxwin.h) в tools.dll, чтобы больше не было зависимости от MFC100.dll в helper.dll.
Наконец, ни одна из моих DLL не зависит от MFC, поэтому ASSERT также исчез. Спасибо xMRi!
Других решений пока нет …