C++ UpdateRegistry编译错误

C++ UpdateRegistry编译错误,c++,com,visual-studio-2005,windows-ce,atl,C++,Com,Visual Studio 2005,Windows Ce,Atl,当我使用客户提供的WInCE设备SDK构建ATL com时,我遇到以下错误。我如何解决这个问题?我用VS-2005创建了工作区 1>f:\polycold\testapps\polycoldsmartdevice\polycoldsmartdevice\CmdParser.h(73) : error C2039: 'UpdateRegistry' : is not a member of 'CCmdParser' 1> f:\polycold\testapps\poly

当我使用客户提供的WInCE设备SDK构建ATL com时,我遇到以下错误。我如何解决这个问题?我用VS-2005创建了工作区

1>f:\polycold\testapps\polycoldsmartdevice\polycoldsmartdevice\CmdParser.h(73) : error C2039: 'UpdateRegistry' : is not a member of 'CCmdParser'
1>        f:\polycold\testapps\polycoldsmartdevice\polycoldsmartdevice\CmdParser.h(29) : see declaration of 'CCmdParser'
1>f:\polycold\testapps\polycoldsmartdevice\polycoldsmartdevice\CmdParser.h(73) : error C2065: 'UpdateRegistry' : undeclared identifier

通过对我的水晶球进行大量猜测,我将确定CmdParser是您试图创建的一个新ATL COM类。如果是这种情况,我相信VS ATL向导中有一个错误,使WINCE ATL项目无效。我使用的一个简单解决方法是注释以下内容:

//#ifndef _CE_DCOM
DECLARE_REGISTRY_RESOURCEID(IDR_TESTATLOBJ)
//#endif
ATL类的头文件中应该有类似的代码


中有一些关于此问题的评论。

是否要共享代码?无论如何,我很难确定我看不懂的代码有什么问题。我的意思是你显然在打电话给UpdateRegistry,但那是什么,在哪里?这不是Win32 API。CmdParser是您使用此SDK创建的新ATL对象吗?如果其他人(例如@ctacke)能够解释这一误解,我会非常感激。您的水晶球比我的好-我甚至没有猜到您那么多信息+谢谢你的尝试。@ctacke谢谢。不久前我也有同样的问题,所以我有点“同步化”@yms:谢谢。它删除了编译错误。现在我得到了链接错误链接:致命错误LNK1104:无法打开文件“commctrl.lib”。在已安装sdk的lib文件夹中找不到lib文件。如何更正此问题?请查看此帖子了解您的新问题: