Re: Error C2259 while building application on 64-bit
- From: Joseph M. Newcomer <newcomer@xxxxxxxxxxxx>
- Date: Mon, 18 Dec 2006 11:36:40 -0500
See below...
On 18 Dec 2006 02:06:52 -0800, shikhar.ntds@xxxxxxxxx wrote:
Hi All,*****
I am trying to build my app for 64bit system (which builds fine for
32-bit).
While building it on 64-bit i am getting error C2259 at the call:
COM_INTERFACE_ENTRY_TEAR_OFF( __uuidof(IShellFolder), CMyShellFolder)
in my code.
The build log says:
d:\testapp\ext\sdk\vs8rtm\sdk\include\atl80\atlcom.h(1828) : error
C2259: 'ATL::CComTearOffObject<Base>' : cannot instantiate abstract
class
with
[
Base=CMyShellFolder
]
due to following members:
'HRESULT IPersistFolder::Initialize(LPCITEMIDLIST)' : is
abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(816) : see
declaration of 'IPersistFolder::Initialize'
'HRESULT
IShellFolder::ParseDisplayName(HWND,LPBC,LPOLESTR,ULONG *,LPITEMIDLIST
*,ULONG *)' : is abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(1398) : see
declaration of 'IShellFolder::ParseDisplayName'
'HRESULT IShellFolder::BindToObject(LPCITEMIDLIST,LPBC,const
IID &,void **)' : is abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(1411) : see
declaration of 'IShellFolder::BindToObject'
'HRESULT IShellFolder::BindToStorage(LPCITEMIDLIST,LPBC,const
IID &,void **)' : is abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(1417) : see
declaration of 'IShellFolder::BindToStorage'
'HRESULT
IShellFolder::CompareIDs(LPARAM,LPCITEMIDLIST,LPCITEMIDLIST)' : is
abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(1423) : see
declaration of 'IShellFolder::CompareIDs'
'HRESULT IShellFolder::GetAttributesOf(UINT,LPCITEMIDLIST
*,SFGAOF *)' : is abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(1433) : see
declaration of 'IShellFolder::GetAttributesOf'
'HRESULT IShellFolder::GetUIObjectOf(HWND,UINT,LPCITEMIDLIST
*,const IID &,UINT *,void **)' : is abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(1438) : see
declaration of 'IShellFolder::GetUIObjectOf'
'HRESULT
IShellFolder::GetDisplayNameOf(LPCITEMIDLIST,SHGDNF,STRRET *)' : is
abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(1446) : see
declaration of 'IShellFolder::GetDisplayNameOf'
'HRESULT
IShellFolder::SetNameOf(HWND,LPCITEMIDLIST,LPCOLESTR,SHGDNF,LPITEMIDLIST
*)' : is abstract
d:\testapp\ext\sdk\vs8rtm\sdk\include\shobjidl.h(1451) : see
declaration of 'IShellFolder::SetNameOf'
d:\testapp\ext\sdk\vs8rtm\sdk\include\atl80\atlcom.h(1818) :
while compiling class template member function 'HRESULT
ATL::CComInternalCreator<T1>::CreateInstance(void *,const IID &,LPVOID
*)'
with
[
T1=ATL::CComTearOffObject<CMyShellFolder>
]
d:\testapp\ext\sdk\vs8rtm\sdk\include\atl80\atlcom.h(1899) :
see reference to class template instantiation
'ATL::CComInternalCreator<T1>' being compiled
with
[
T1=ATL::CComTearOffObject<CMyShellFolder>
]
d:\testapp\ext\sdk\vs8rtm\sdk\include\atl80\atlcom.h(1899) :
while compiling class template static data member
'ATL::_ATL_CREATORDATA ATL::_CComCreatorData<Creator>::data'
with
[
Creator=ATL::CComInternalCreator<ATL::CComTearOffObject<CMyShellFolder>>
]
I have seen the documentation of this error and it says that it occurs
mainly due to interface not implemented in deried class but in the
current scenario it is working fine with 32-bit machines (not with
64-bit build).
Which 32-bit build? VS6 was sometimes a lot more forgiving of C++ violations (although it
shouldn't have allowed this, either) than modern C++ compilers.
Unfortunately, I've only done one shell extension, so I'm not familiar with the classes
involved, so I can't really help much here. Track back and see if those methods really
are virtual PURE methods. Of course, there's always a chance that the Win64 library is
different somehow, and it would be worth comparing the header file you use in the 32-bit
build to the header file you use in the 64-bit build. Beyond that, I can't offer much
advice.
joe
****
Joseph M. Newcomer [MVP]
Can anyone please help me resolve this issue.
Thanks alot.
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
.
- Follow-Ups:
- Re: Error C2259 while building application on 64-bit
- From: shikhar . ntds
- Re: Error C2259 while building application on 64-bit
- References:
- Error C2259 while building application on 64-bit
- From: shikhar . ntds
- Error C2259 while building application on 64-bit
- Prev by Date: Re: accessing extern varible form a dll
- Next by Date: Re: Test Mail...Please Ignore
- Previous by thread: Error C2259 while building application on 64-bit
- Next by thread: Re: Error C2259 while building application on 64-bit
- Index(es):
Relevant Pages
|