Windows에서 표준 DLL 진입 점의 이름은 DllMain입니다. 두 번째 매개 변수는 DWORD, ul_reason_for_call
입니다.DLL_PROCESS_VERIFIER 플래그로 DllMain을 호출 할시기는 언제입니까?
MSDN에서이 두 번째 매개 변수에 사용할 수있는 값을 조회했습니다. 다음 명백하다 :
DLL_PROCESS_ATTACH:
DLL_THREAD_ATTACH:
DLL_THREAD_DETACH:
DLL_PROCESS_DETACH:
그러나 약 :
DLL_PROCESS_VERIFIER
이 때 진입 점은이 플래그로 호출됩니다? DLL의 '정상적인'작동 중에 걱정할 필요가 있습니까? 난 단지 비주얼 스튜디오 2005에서 헤더 파일에
DLL_PROCESS_VERIFIER
를 참조
참고하지 2008 년
동의. 현재 내 코드는 입니다. {case DLL_PROCESS_VERIFIER : default : return 0; } 그러나 내 질문은 언제/왜 이것이 현재 일어날 지와 관련이 있습니다. – Konrad
일반적인 합의는 Application Verifier가 측정하는 프로세스에서 dll이 호출 된 결과로 보입니다. Visual Studio의 일부로 제공되는 Im이므로 어떤 종류의 로깅 코드를 넣고 있는지 테스트 해보는 것이 "쉽다". 정상 작동 중에? 분명히. –
switch 문에서 @Whyam을 명시 적으로 언급하는 것에 대해 조언합니다 *. 그것은 당신이 프로그램이 그 가치를 어떻게 다루어야하는지 생각 해낸 잘못된 인상을주었습니다. 왜냐하면 그것이 무엇인지를 모르기 때문에 분명히 가질 수 없었을 때입니다. 코드에이 코드를 포함시킴으로써 앞으로의 코드 유지 보수 담당자에게 무엇이 필요한지 묻습니다. 그러면 시간과 시간이 낭비됩니다. 그것이 존재하지 않는다고 가장하는 것이 가장 좋습니다. –