EngExtCpp 확장 작성
EngExtCpp 확장 라이브러리에는 표준 C++ 코드가 포함될 수 있습니다. wdbgexts.h 헤더 파일에 표시되는 C 함수 외에도 engextcpp.h 및 dbgeng.h 헤더 파일에 표시되는 C++ 인터페이스를 포함할 수도 있습니다. dbgeng.h와 wdbgexts.h는 모두 engextcpp.h에서 포함됩니다.
확장 명령에서 사용할 수 있는 dbgeng.h의 인터페이스 전체 목록은 디버거 엔진 참조를 참조하세요.
확장 명령에 사용할 수 있는 wdbgexts.h의 전체 함수 목록은 WdbgExts Functions를 참조하세요. 이러한 함수의 수는 32비트 버전 및 64비트 버전에 표시됩니다. 일반적으로 64비트 버전은 "64"로 끝나고 32비트 버전은 숫자 끝(예: ReadIoSpace64 및 ReadIoSpace)이 없습니다. DbgEng 확장에서 wdbgexts.h 함수를 호출하는 경우 항상 "64"로 끝나는 함수 이름을 사용해야 합니다. 디 버거 엔진 은 대상 플랫폼에 관계없이 항상 내부적으로 64비트 포인터를 사용하기 때문입니다. wdbgexts.h를 포함하는 경우 engextcpp.h는 64비트 버전의 API를 선택합니다. WDbgExts API에서 사용하는 ExtensionApis 전역 변수는 EngExtCpp 메서드를 입력할 때 자동으로 초기화되고 종료 시 지워집니다.
원격 DbgEng 인터페이스와 함께 EngExtCpp 확장을 사용하면 WDbgExts 인터페이스를 사용할 수 없으며 ExtensionApis 구조를 0으로 설정할 수 있습니다. 이러한 환경에서 EngExtCpp 확장이 작동해야 하는 경우 WDbgExts API를 사용하지 않아야 합니다.
참고 디버거 확장에서 DbgHelp 또는 ImageHlp 루틴을 호출하려고 시도해서는 안 됩니다. 이러한 루틴을 호출하는 것은 지원되지 않으며 다양한 문제를 일으킬 수 있습니다.