_ATL_MIN_CRT results in unbuildable code
We've been trying to port a VC6 ATL project into VC7 and have run into
an issue with our Release builds. We have _ATL_MIN_CRT defined for
the Release build and everything built just fine in VC6, however in
VC7 we're getting unresolved externals for new(), delete(), and
__purecall without any modifications to the code.
After trying to puzzle this out for a while, I decided to try out a
quick and easy test app and created a new C++ ATL project in VC7. I
then turned on the "minimize CRT use in ATL" option for the Release
build (it's now off by default) and added a simple ATL object from the
This code would not build! To be perfectly clear, I had not written
any code at all myself, this project only had code generated by the
VC7 wizards. The only modification I had made was changing one
option, and it was unable to build with an unresolved external for
_main(). So something in the wizard code introduces a dependency on
the CRT startup code.
It looks to me like VC7 has some serious issues with the _ATL_MIN_CRT
setting. Anyone have any experience with this or work-arounds?