Skapa EngExtCpp-tillägg

Tilläggsbiblioteken för EngExtCpp byggs nästan på samma sätt som dbgEng-tilläggsbiblioteken. Mer information finns i Skapa DbgEng-tillägg.

EngExtCpp-implementeringskoden (engextcpp.cpp) används i stället för att länka till ett statiskt bibliotek.

Eftersom EttgExtCpp-tilläggsramverket bygger på DbgEng-tilläggsramverket bör en DLL för EngExtCpp-tillägget exportera samma funktioner som en DbgEng-tilläggs-DLL.

Varje tillägg ska exporteras. När du använder makrot EXT_COMMAND för att definiera en tilläggsfunktion skapar makrot även en C-funktion med samma namn som tillägget. Den här funktionen bör exporteras från DLL:en.

Följande funktioner tillhandahålls av engextcpp ska exporteras från DLL:n EngExtCpp.

  • DebugExtensionInitialize – så att metoden Initialize kan anropas för att initiera biblioteket.

  • DebugExtensionUnitialize – så att metoden Uninitialize kan anropas för att uninitialisera biblioteket.

  • KnownStructOutputEx – så att motorn kan anropa ExtKnownStructMethod-metoderna för att formatera kända strukturer för utdata.

  • DebugExtensionNotify – så att motorn kan anropa metoderna OnSessionActive, OnSessionInactive, OnSessionAccessible och OnSessionInaccessible för att meddela tilläggsbiblioteket om ändringar i felsökningssessionens tillstånd.

  • hjälp – så att EttgExtCpp-tilläggsramverket automatiskt kan tillhandahålla ett !help-tillägg .

Dessa funktioner kan exporteras även om de funktioner som de tillhandahåller inte behövs. Om de inte exporteras går dessutom de funktioner som de tillhandahåller förlorade.

DebugExtensionInitialize måste exporteras för att felsökningsmotorn ska kunna identifiera DLL:n som ett giltigt DbgEng-tilläggs-DLL.