【发布时间】:2012-03-25 18:05:25
【问题描述】:
我有一个 MFC 应用程序。它有一个包含某些数据对象的 CMap,该映射声明为 CMap<DWORDLONG, DWORDLONG,_ItemsObj*,_ItemsObj*> 其中 _ItemsObj 是一个包含各种数据的结构。
我面临的问题是,当我尝试搜索条目时,查找方法在 x64 版本上意外失败(并且仅在 x64 版本上)。
这是我正在使用的代码
BOOL IsItemExist(DWORDLONG dwid)
{_ItemsObj* pObj=NULL;
if(!m_Itemsmap.Lookup(dwid,pObj))
{return FALSE;}
return TRUE;
}
现在这在我的应用程序的 32 位版本上完美运行。然而,在 x64 构建中,即使项目存在于地图中并且我正在寻找的键存在于地图中,查找总是会失败。
我认为它与构建配置问题有些相关,我检查了应用项目的 x86 和 x64 选项的链接属性和构建配置,它们使用完全相同的配置,除了目标机器选项(其中应该不同)。
谁能帮我解决这个问题,我一直在互联网上寻找解决方案,但找不到任何东西。
哦,我正在使用 VS 2010 SP1
问候
【问题讨论】:
-
尝试查看 CMap.Lookup 源...也许那里有一些魔法可以使它在您的情况下无法正常工作。
-
无法访问 sorce.. 抱歉,我试过了...
标签: windows visual-studio visual-c++ mfc