Nano Hash - криптовалюты, майнинг, программирование

vs2017 подключение камеры RealSense

Я пытаюсь использовать камеру Intel RealSense в проекте C#.
Хотя код примера работает нормально.

Мой собственный проект в другой папке вызывает исключение. Невозможно загрузить DLL
"realsense2: указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)."

Теперь я поместил realsense2.dll в папку lib и в папку отладки. Я думаю, что это неуправляемая dll, а другая «Intel.RealSense.dll» — это dll интерфейса .net. Я поместил как в папку lib, так и в папку отладки. Я пытался ссылаться на Intel.realsense.dll (оболочку .net API) в обоих местах (папка отладки и папка lib), но безуспешно.

На форумах Intel я заметил, что иногда возникает ошибка, когда модель процессора неверна, но я оставил их такими же, как в образце. Это должно быть какая-то ошибка визуальной студии (поскольку пример Intel работает). Но я пропускаю, где это идет не так.


  • У вас отсутствует зависимость DLL. DUMPBIN может рассказать вам или Dependency Walker. 11.07.2018

Ответы:


1

Шаг 1. Создайте предоставленные образцы C++/C#, используя инструкции, расположенные в основном репозитории в разделе /wrappers/csharp/readme.md.

  • Сгенерируйте решение VS с помощью cmake (запустите из корневого каталога librealsense):

    • mkdir build
    • сборка компакт-диска
    • cmake .. -DBUILD_CSHARP_BINDINGS=ON -DBUILD_SHARED_LIBS=ON
  • Файл realsense2.sln должен быть создан в папке build, откройте файл с помощью Visual Studio, примеры C# и библиотека будут доступны в решении в разделе Wrappers/csharp.

И собственная библиотека, и оболочка .NET создаются по умолчанию как часть зависимостей примеров.

Шаг 2. Взгляните на рабочие образцы для справки. Сборка librealsense по умолчанию для Windows — Debug/Win32 (для этой конфигурации образцы сборки будут доступны по адресу your_librealsense_dir/build/Debug)

В вашем проекте C# вам нужно добавить Intel.RealSense.dll в качестве ссылки и скопировать realsense2.dll в каталог сборки, например: your_project_home/bin/x86/Debug

22.08.2018

2

Примечание. Глядя ниже, я думаю, что, вероятно, у вас есть все эти библиотеки DLL. Возможно, у вас проблема с путями. Убедитесь, что ваш EXE-файл запускается из той же папки, в которой находятся библиотеки DLL.

Вот зависимости realsense2.dll (x86), выводимые DUMPBIN:

Эти Windows:

KERNEL32.dll
USER32.dll
ole32.dll
OLEAUT32.dll
ADVAPI32.dll
SHLWAPI.dll
CFGMGR32.dll
SETUPAPI.dll
MF.dll
MFPlat.DLL
MFReadWrite.dll
WINUSB.DLL

И этот VS 2017:

VCOMP140.DLL

Dependency Walker сообщит вам, какие из них у вас есть, а какие нет.

12.07.2018
  • мой intelrealsense.dll (64-битная система) показывает другой список dll: Mscore.dll, kernel32, user32, advapi, shlwapi, version, oleaut32, urlmon. Тем не менее, меня больше всего интересует, почему это не будет работать в конструкции папки lib, обычно это работает, и это не так уж особенно. 12.07.2018
  • При программной загрузке DLL вы можете указать путь. Но в .NET самый простой и распространенный способ автоматической загрузки сборок — это если они находятся в одном каталоге. В противном случае вам придется использовать что-то вроде файла конфигурации codebase. 13.07.2018
  • Чего я не понимаю, так это того, что другие проекты, которые я написал, также использовали ссылающиеся dll в папке lib, это не проблема, это проблема только при использовании realsense. 13.07.2018
  • Я думаю, вы обнаружите, что ссылка имеет флаг копирования, установленный в true. Это означает, что DLL копируется в выходной каталог во время сборки. 13.07.2018
  • изменение флага копирования не имеет значения, но они очень заинтересованы в компиляции своих dll самостоятельно. (что я не сделал), но заставляет меня задаться вопросом, что-то не так. разные привязки API в отладочной и финальной dll..угадывание 13.07.2018
  • Я заметил, что они используют CMake, так что он должен просто работать (tm). Попробуй, я полагаю. 13.07.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..