Debugging Tools for Windows

Building ExtEngCpp Extensions

The ExtEngCpp extension libraries are built almost the same way as the DbgEng extension libraries (for details, see Building DbgEng Extensions).

In addition, ExtEngCpp extension libraries usually must be statically linked with the library engextcpp.lib. This can be accomplished by adding the following line in the sources file:

LINKLIBS = $(DBGLIB_LIB_PATH)\engextcpp.lib

The EngExtCpp implementation is also available in Debugging Tools for Windows package for situations where linking with the static library is inappropriate or if the static library was built with different options than the ones needed for the extension code.

Because the ExtEngCpp extension framework is built on top of the DbgEng extension framework, an EngExtCpp extension DLL should export the same functions as a DbgEng extension DLL.

Each extension should be exported. When you use the EXT_COMMAND macro to define an extension function, this macro also creates a C function with the same name as the extension. This function should be exported from the DLL.

The following functions are provided by the engextcpp.lib library and should be exported from the ExtEngCpp DLL.

These functions can be exported even if the functionality they provide is not needed. Moreover, if they are not exported, the functionality they provide will be lost.

DebugExtensionInitialize must be exported in order for the debugger engine to recognize the DLL as a valid DbgEng extension DLL.

Build machine: CAPEBUILD