2013-10-28 5 views
0

DLL 중 하나에서 Boost.Log를 사용하려고하면 dllinit.cpp에 어설 션이 표시됩니다.Boost.Log (또는 Boost.Thread)를 사용할 때 dllinit.cpp 줄 703의 MFC ASSERT

나는 로깅 기능을 포함하고있는 tools.dll을 가지고 있으며 Boost.Log로 로깅을 구현하려고 시도했다. 이 tool.dll은 다른 helper.dll에서 참조하며 두 DLL은 모두 응용 프로그램에서 사용됩니다.

그러나 응용 프로그램을 시작할 때 ASSERT가 표시됩니다.

Boost 1.54 및 (포함 된) Boost.Log뿐만 아니라 Boost 1.48 및 Boost.Log 1.1에서도 마찬가지입니다.

저는 많은 메일 링리스트와 오래된 게시물을 파고 들었습니다. 지금까지 이해 무엇, Boost.Thread의에서 _pRawDllMain 포인터에 문제가있어, 일부는

#include <boost/thread/detail/tss_hooks.hpp> 

에서 그것을 주석 것을 제안하지만,이 메모리 누수로 연결? 이 thread은 1.40 이후에 수정 될 것이라고 말했지만, 이것이 완료되었는지는 알 수 없습니다. 제안 된대로 부스트에 동적 연결 here 도움이되지 않았습니다.

boost-users에 대한 질문은 지금까지 도움이되지 않았습니다.

힌트, 내가 무엇을 확인해야합니까?

편집 : 그것은 표준 DLL로 구성,하지만 응용 프로그램의 버전 정보를 얻을 수 AFXWIN.H에서 API를 사용하기 때문에 실행 종속이 MFC100.dll에있을 것.

+0

내 의견을 개선 할 수 있도록 의견을 보내주십시오. – Simon

+0

어떤 종류의 DLL을 만드셨습니까? MFC 확장 DLL? 표준 DLL? 정적 또는 동적으로 링크 된 MFC? – xMRi

답변

0

따라서 MFC100.dll (GetVersionInfo는 afxwin.h없이 작동 함)에 대한 종속성을 tools.dll에서 제거 했으므로 helper.dll의 MFC100.dll에 더 이상 종속되지 않았습니다.

마지막으로 내 DLL은 MFC에 의존하지 않으므로 ASSERT도 사라졌습니다. 감사합니다 xMRi!