When defining this macro, you can select the attributes that will be applied to the class. These can be standard or compiler-specific attributes.
Your specific example is most likely an instance of the regular template for DLL headers in MSVC. Depending on the compilation time switch, DEBUG_API will be installed either:
__declspec(dllexport) , which will make the MSVC generated .lib file containing the thunk class; this is used when compiling the library as a DLL;__declspec(dllimport) , which will make the MSVC link against thunk generated above; this is used when linking to a DLL;- Nothing that changes class behavior. This is used to link statics to the library.
source share