OpenXR - неразрешенный внешний символ
Я продолжаю получать неразрешенный внешний символ на xrCreateSpatialGraphNodeSpaceMSFT, и в этот момент у меня просто закончились вещи, которые я мог бы попытаться заставить эту вещь работать. Я бы ни в коем случае не называл себя опытным программистом, так что вполне возможно, что я просто делаю что-то очень глупое. Буду очень благодарен за любой ответ.
Я пробовал использовать заголовки из пакета NuGet и заголовки из Microsoft / OpenXR-MixedReality.
Что касается загрузчика, я попробовал один пакет NuGet и сам собрал его из KhronosGroup / OpenXR-SDK.
Мне не повезло ни с одним из них (опять же, это могло быть из-за того, что я сделал что-то не так или выглядел просто глупо ...).
Вот код для справки.
xr::SpaceHandle target_space{};
XrSpatialGraphNodeSpaceCreateInfoMSFT* create_info{};
create_info->type = XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT;
guid_ g_data{ code };
create_info->nodeType = XR_SPATIAL_GRAPH_NODE_TYPE_STATIC_MSFT;
memcpy(create_info->nodeId, (void*)g_data.Data1, sizeof(guid_));
xrCreateSpatialGraphNodeSpaceMSFT(m_session.Get(), create_info, target_space.Put());
1 ответ
xrCreateSpatialGraphNodeSpaceMSFT
не является основной функцией OpenXR (как указано
MSFT
суффикс). Сначала вы должны получить указатель на функцию, как описано здесь .
Также убедитесь, что соответствующее расширение (XR_MSFT_spatial_graph_bridge) включено при создании экземпляра OpenXR, как описано здесь .
Наконец, обратите внимание, что в вашем фрагменте кода также есть ошибка: ваш
create_info
struct объявляется как указатель, но никогда не выделяется. Лучше просто объявить его как локальный, выделенный в стеке.