Когда я отлаживаю код (указанный ниже) в Windows XP, get_tables(&_result)
назначает список таблиц для _result
, и значение hr
становится S_OK
.
Если я попробую тот же код с Windows 7 (32-разрядная версия), функция get_tables
назначает NULL (0X00000) для _result
(что не исключено), и значение hr
становится " Приложение называется интерфейсом, который был назначен для другого потока ". Моё приложение вылетает.
Почему это происходит в Windows 7 (32-разрядная версия)?
Должен ли я пойти на сортировку?
Или мне нужно изменить некоторые настройки для Windows 7?
// Append the new table
m_pCatalog->Tables->Append(_variant_t((IDispatch *) pTableNew));
Во время отладки я перехожу к этой точке (см. Ниже).
inline TablesPtr _Catalog::GetTables()
{
struct Tables * _result;
HRESULT _hr = get_Tables(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return TablesPtr(_result, false);
}