strange COM problem under CE 6

来源:互联网 发布:安卓可视化编程 编辑:程序博客网 时间:2024/05/16 15:08
COM/DCOM is very heavily componentized, check out
http://blogs.msdn.com/cenet/archive/2006/11/29/dcom-demystified-kindof-on-ce-6.aspx
for background.

Looking at the ATL file you're hitting errors, those fcns are only brought
in when this #ifdef is set.

#if !defined(_WIN32_WCE) || (!defined(_ATL_STATIC_LIB_IMPL) &&
!defined(_ATL_DLL_IMPL) && defined(_CE_DCOM))
--

We have this ifdef because those fcns are supported on CE devices that
support the full cross-proc COM. So looks like you have _WIN32_WCE defined
to get the fcns, but didn't build with full DCOM to get the actual fcn
definitions?


--
John Spaith
Senior Software Design Engineer
Windows CE Networking
Microsoft Corporation

http://blogs.msdn.com/cenet/.

This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use. © 2007 Microsoft Corporation. All rights
reserved.

"Skin Diver" <davidves@xxxxxxxxxxxxxxx> wrote in message
news:uIxqmyXhIHA.5368@xxxxxxxxxxxxxxxxxxxxxxx
I have COM application that works when built under the Windows Mobile 6
SDK. I am porting over to a custom Windows CE 6.0 platform and I have
included all the COM
and ATL components in the CE 6 image. I build and installed the CE 6 SDK.

When I build the application under CE 6 SDK I get these errors (plus a lot
more just like it)

Can someone tell me what these errors mean and how to correct?

C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(694) : error C2039: 'CoDisconnectObject'
: is not a member of '`global namespace''
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(694) : error C2873: 'CoDisconnectObject'
: symbol cannot be used in a using-declaration
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(695) : error C2039: 'CoInitialize' : is
not a member of '`global namespace''
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(695) : error C2873: 'CoInitialize' :
symbol cannot be used in a using-declaration
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(696) : error C2039: 'CoRevokeClassObject'
: is not a member of '`global namespace''
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(696) : error C2873: 'CoRevokeClassObject'
: symbol cannot be used in a using-declaration
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(697) : error C2039:
'CoRegisterClassObject' : is not a member of '`global namespace''
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(697) : error C2873:
'CoRegisterClassObject' : symbol cannot be used in a using-declaration
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(698) : error C2039:
'CoReleaseMarshalData' : is not a member of '`global namespace''
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(698) : error C2873:
'CoReleaseMarshalData' : symbol cannot be used in a using-declaration
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(699) : error C2039: 'CoMarshalInterface'
: is not a member of '`global namespace''
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(699) : error C2873: 'CoMarshalInterface'
: symbol cannot be used in a using-declaration
C:\Program Files\Microsoft Visual Studio
8\VC\ce\atlmfc\include\atlcore.h(700) : error C2039:
'CoUnmarshalInterface' : is not a member of '`global namespace''

http://www.tech-archive.net/Archive/WindowsCE/microsoft.public.windowsce.embedded.vc/2008-03/msg00042.html
原创粉丝点击