I have a very simple ATL service that implements CAtlServiceModuleT
. It does not use any virtual functions in the implementation of the service, but obviously the ATL template object does use virtual functions.
I looked through the implementation of the CAtlServiceModuleT
and it does not appear to define any pure virtual functions, but the template itself is declared using the declspec(novtable) which I don't quite understand.
I understand the basic use cases for what causes pure virtual call errors, but this does not seem to fall into any of those categories, e.g.:
Where do "pure virtual function call" crashes come from?
I've written a purecall implementation to try and get a better stack trace, but I have not been able to reproduce this in house.
Where else can this error come from?