EngExtCpp 延伸模組連結庫的建置方式幾乎與 DbgEng 延伸模組連結庫相同。 如需詳細資訊,請參閱 建置 DbgEng 延伸模組。
會使用 EngExtCpp 實作程式代碼 (engextcpp.cpp), 而不是與靜態庫連結。
由於 EngExtCpp 擴充功能架構建置在 DbgEng 擴充功能架構之上,因此 EngExtCpp 擴充功能 DLL 應該導出與 DbgEng 擴充功能 DLL 相同的函式。
應該匯出每個延伸模組。 當您使用 EXT_COMMAND 巨集來定義擴充函式時,這個巨集也會建立與延伸模組同名的 C 函式。 此函式應該從 DLL 匯出。
下列函式是由 engextcpp 提供的,應該從 EngExtCpp DLL 導出。
DebugExtensionInitialize -- 讓 Initialize 方法可以呼叫以初始化連結庫。
DebugExtensionUnitialize -- 讓 Uninitialize 方法可以被呼叫來取消初始化程式庫。
KnownStructOutputEx -- 讓引擎可以呼叫 ExtKnownStructMethod 方法來格式化輸出的已知結構。
DebugExtensionNotify -- 讓引擎可以呼叫 OnSessionActive、OnSessionInactive、OnSessionAccessible 和 OnSessionInaccessible 方法,以通知擴充連結庫對偵錯會話狀態的變更。
help -- 讓 EngExtCpp 擴充功能架構可以自動提供 !help 擴充功能。
即使不需要它們所提供的功能,也可以導出這些函式。 此外,如果未匯出,則其提供的功能將會遺失。
DebugExtensionInitialize 必須匯出,調試程式引擎才能將 DLL 辨識為有效的 DbgEng 延伸模組 DLL。