У меня есть приложение MFC. Он имеет CMap, который содержит определенные объекты данных, карта объявляется как CMap<DWORDLONG, DWORDLONG,_ItemsObj*,_ItemsObj*>
, где _ItemsObj - это структура, которая содержит различные данные.
Проблема, с которой я сталкиваюсь, заключается в том, что при попытке найти запись метод Lookup неожиданно завершается неудачно в сборках x64 (и ТОЛЬКО в сборках x64).
Вот код, который я использую
BOOL IsItemExist(DWORDLONG dwid)
{_ItemsObj* pObj=NULL;
if(!m_Itemsmap.Lookup(dwid,pObj))
{return FALSE;}
return TRUE;
}
Теперь это отлично работает на 32-битной сборке моего приложения. Однако в сборке x64 Lookup всегда дает сбой, даже если элементы присутствуют на карте, а ключ, который я ищу, присутствует на карте.
Я думаю, что это в некоторой степени связано с проблемой конфигурации сборки, я проверил свойства связывания и конфигурацию сборки для параметров x86 и x64 для проекта приложения, и они используют точно такую же конфигурацию, за исключением параметра целевой машины (который должен быть другим).
Может кто-нибудь помочь мне исправить это, я искал решение по всему Интернету, но ничего не смог найти.
О, и я использую VS 2010 SP1
Привет