Невозможно использовать C ++ / CLI DLL, если не установлен Windows 10 SDK - PullRequest
0 голосов
/ 09 мая 2019

Мы разработали библиотеку 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 установлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...