Windows CMap查找失败

Windows CMap查找失败,windows,visual-studio,visual-c++,mfc,Windows,Visual Studio,Visual C++,Mfc,我有一个MFC应用程序。它有一个包含特定数据对象的CMap,该映射被声明为CMap,其中_ItemsObj是一个包含各种数据的结构 我面临的问题是,当我尝试搜索条目时,查找方法在x64版本上意外失败(并且仅在x64版本上) 这是我正在使用的代码 BOOL IsItemExist(DWORDLONG dwid) {_ItemsObj* pObj=NULL; if(!m_Itemsmap.Lookup(dwid,pObj)) {return FALSE;} return TRUE; } 现在,这在

我有一个MFC应用程序。它有一个包含特定数据对象的CMap,该映射被声明为
CMap
,其中_ItemsObj是一个包含各种数据的结构

我面临的问题是,当我尝试搜索条目时,查找方法在x64版本上意外失败(并且仅在x64版本上)

这是我正在使用的代码

BOOL IsItemExist(DWORDLONG dwid)
{_ItemsObj* pObj=NULL;
if(!m_Itemsmap.Lookup(dwid,pObj))
{return FALSE;}
return TRUE;
}
现在,这在我的应用程序的32位构建上非常有效。但是,在x64构建上,即使项目存在于映射中,并且我要查找的密钥存在于映射中,查找始终失败

我认为这在某种程度上与构建配置问题有关,我已经检查了应用程序项目的x86和x64选项的链接属性和构建配置,它们使用完全相同的配置,但目标机器选项除外(应该不同)

有人能帮我解决这个问题吗?我一直在互联网上寻找解决方案,但什么都找不到

哦,我正在使用VS2010SP1


关于

CMap、CList和CArray使用五种全局辅助函数。它们是CompareElements、CopyElements、DumpElements、HashKey和SerializeElements。您的问题可能与CMap用来存储集合元素的序列化元素有关。 另一件要尝试的事情是将您的CMap声明为
CMap

尝试查找CMap。查找源。。。也许有一些魔法使它无法在你的情况下正常工作。无法使用魔法。。对不起,我试过了。。。