2009-03-26 2 views
1

MFC 8.0 용으로 준비된 DllMain이 DLL_PROCESS_DETACH를 가져올 때 ExitInstance를 호출하지 않는 것처럼 보입니다. 한 가지 가능한 솔루션은 내 자신의 DllMain을 정의하는 것이지만 어떻게 링커에게 MFC가 아닌 내 것을 사용하도록 지시합니까?MFC는 DllMain을 통조림으로 DLL_PROCESSS_DETACH에 대해 ExitInstance를 호출하지 못합니까?

또는 DLL_PROCESS_DETACH에서 호출되는 또 다른 오버라이드가 있습니까?

답변

1

/clr을 사용하여 컴파일 한 프로젝트에서 비슷한 문제가 발생했습니다. 같은 상황입니까? 특정 조건으로 추적 할 수 없었지만 null을 설정하기 위해 일부 정적 초기화 프로그램을 변경하여이를 지웠습니다. 정적 소멸자가 등록 된 순서와 관련이 있다고 생각합니다.

+0

/clr로 컴파일됩니다. 나는 내일 이것을 반드시 확인해야 할 것이다. – Nick

0

ExitInstance가 호출되지 않는 이유는 모르겠지만 MFC의 dllmodul.cpp 파일의 내용을 DLL의 파일에 복사하고 추가 기능을 추가하여 자신의 DllMain을 정의 할 수 있습니다. 절차는 this MS knowledge base article에 문서화되어 있습니다. MFC 4.0 용으로 작성되었지만 MFC 8.0을 사용하는 응용 프로그램에이 메서드를 성공적으로 사용했습니다.

관련 문제