2005/12/3, ȲÀ±¼º <hys545@dreamwiz.com>:
Compiling...
precomp.cpp
c:\work\explorer\utility/shellclasses.h(556) : error C2504: 'IShellFolderPtr' : base class undefined
c:\work\explorer\utility/shellclasses.h(557) : error C2146: syntax error : missing ';' before identifier 'super'
c:\work\explorer\utility/shellclasses.h(557) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
 
The problem is there are diferent versions of comdef.h around. You need to configure your include path so, that the correct one from Microsoft Platform SDK with the intrinsic declaration of 'IShellFolderPtr' is first.
 
See also the comment in line 210 of utility.h:
 
/* not necessary with correct include file order for comdef.h (path "...\Program Files\Microsoft SDK\include" first)
#if _MSC_VER>=1300 // VS.Net
#define _NO_COMUTIL
#endif
*/
 
If you don't get the path right or don't have available the correct include file, you can try to define _NO_COMUTIL as compiler option. This bypasses the VC++ smart COM pointers and uses a replacement instead.
 
Regards,
 
   Martin