현재 폐쇄 된 작업 프로젝트의 확장 DLL입니다.CRT의 _purecall 구현을 재정의합니다.
모든 순수 호출 버그를 잡아두고 싶습니다. 그래서 검색을하고 _purecall 처리기를 발견했습니다. 내 질문에 대한 구현입니다. 그 뒤에서 무슨 일이 일어나고있는거야? 컴파일러 자체는 (정의 된 경우) 내 처리기 함수 주소를 사용하고 클래스 함수 주소 자체 (초기화 후)에서 오버라이드되기 전에 v-table의 각 행에 기본값을 씁니다. CRT와 글로벌 포인터?
내 응용 프로그램 DLL에서 _purecall 처리기를 덮어 쓰는 플러그인 DLL을 원하지 않기 때문에이 질문을 던지고 있습니다. 내 purecall 처리기가 내 모듈의 purecall 만 처리 할 수 있습니까?
감사합니다.
CRT에 동적으로 링크되어 있지 않은 경우 여러 모듈간에 CRT를 공유 할 수 있습니다. –
네, 맞습니다. 여러 모듈이 CRT를 동적으로로드하고 다른 버전의 CRT를 동적으로로드하는 경우를 혼동했습니다. 내 대답을 받아 들일거야. –
고마워요! 나는 VC2010을 사용하여 응용 프로그램을 분해했고, 단순히 순수한 함수 포인터를 대체하는 것으로 보인다 ... – MindBlower