COM ATL interface/class could not be found by the client application

If you compile a COM ATL DLL project with the Intel® C++ Compiler 9.1 or 9.0 (package 9.0.024 or later), the interface/class in the COM ATL project can not be found by the client application.

CoCreateInstance failed with " E_CLASSNOTAVALABLE".

If the COM ATL project is an executable and compiled by Intel C++ Compiler, when you run the executable, it will exit immediately. But if it is compiled by Visual C++* .NET (2002 or 2003) or Visual C++ 2005, it will run in an infinite loop.

The problem is that when you register the DLL/exe, it returns " success", the actual class registration did not happen.

This is a known issue that was resolved in the latest 9.1 and 10.0 compilers.

The work around is to compile the file that contains the variable " _AtlModule" declaration with Visual C++ compiler.

For more complete information about compiler optimizations, see our Optimization Notice.