Мы разработали библиотеку C ++, которая немного интерпретирует данные, в основном конвертируя необработанные потоки байтов в строки JSON, а также собирая пакеты необработанных данных и возвращая коллекцию в виде двоичного файла (поток байтов).
Эта библиотека написана на чистом C ++ STL без каких-либо других библиотек в качестве зависимостей и успешно используется в проектах Android и iOS.
Для нового проекта C # для рабочих столов Windows, разработанного внешними партнерами, мы создали класс PIMPL в C ++ / CLI, который позволяет легко интегрировать уже существующую кодовую базу. В Visual Studio мы компилируем библиотеку C ++ в статическую библиотеку с помощью clang / LLVM и используем ее в проекте Visual C ++ / CLI Wrapper в качестве зависимости для создания библиотеки DLL, предоставляемой нашему партнеру.
Эта установка заняла немного времени, но теперь она работает нормально, и мы очень довольны разработкой.
Но когда мы попытались запустить Demo на другом ПК, мы столкнулись с серьезными проблемами: невозможно загрузить эту DLL в «чистую» систему. При попытке загрузить его в наше приложение (или, если на то пошло, DLL Dependency Walker), он выдает
После нескольких часов экспериментов я сузил его до Windows 10 SDK, который необходим для загрузки этой DLL.
Я предполагаю, что это как-то связано с настройкой компилятора / компоновщика в Visual Studio, но я не знаю, какая именно ...
Edit:
Все распространяемые VC ++ (2010-2017, x86 и x64, чтобы быть уверенными), а также .Net Framework 4.7 и .Net Core Redistributable установлены.