撰寫 EngExtCpp 擴充功能
EngExtCpp 延伸模組程式庫可以包含任何標準 C++ 程式碼。 它也可以包含出現在 engextcpp.h 和 dbgeng.h 標頭檔中的 C++ 介面,以及出現在 wdbgexts.h 標頭檔中的 C 函式。 dbgeng.h 和 wdbgexts.h 都包含自 engextcpp.h。
如需 dbgeng.h 中可用於擴充功能命令的完整介面清單,請參閱 偵錯工具引擎參考。
如需可在擴充命令中使用的 wdbgexts.h 函式完整清單,請參閱 WdbgExts 函式。 其中許多函式會出現在 32 位版本和 64 位版本中。 一般而言,64 位版本以 「64」 結尾,而 32 位版本沒有數值結尾 ,例如 ReadIoSpace64 和 ReadIoSpace。 從 DbgEng 延伸模組呼叫 wdbgexts.h 函式時,您應該一律使用以 「64」 結尾的函式名稱。 這是因為 偵錯工具引擎 一律會在內部使用 64 位指標,而不論目標平臺為何。 包含 wdbgexts.h 時,engextcpp.h 會選取 64 位版本的 API。 WDbgExts API 所使用的 ExtensionApis 全域變數會在專案上自動初始化為 EngExtCpp 方法,並在結束時清除。
當 EngExtCpp 延伸模組與遠端 DbgEng 介面搭配使用時,WDbgExts 介面將無法使用, 而且 ExtensionApis 結構可以零。 如果 EngExtCpp 延伸模組預期會在這類環境中運作,則應該避免使用 WDbgExts API。
注意 您不得嘗試從任何偵錯工具擴充功能呼叫任何 DbgHelp 或 ImageHlp 常式。 不支援呼叫這些常式,而且可能會導致各種問題。