@undefined_title

Как в C# проекте импортировать стороннюю c++ библиотеку?

Я использую Visual Studio 2019. Создал новое консольное приложение. И мне надо импортировать и использовать в дальнейшем эту библиотеку https://github.com/pkohut/GeoFormulas. Но в интернете я особо не нашел конкретные шаги как это достичь. Если кто то имеет опыт или знает как найти нужные ресурсы то помогите пожалуйста.
  • Вопрос задан
  • 351 просмотр
Решения вопроса 1
Вариант "идеоматичный":
1. Эта библиотека должна экспортировать функции с сишным abi (extern "C")
2. В коде на C# ты описываешь эти функции при помощи pinvoke
3. Добавляешь в проект dll-ку с собранной сторонней либой.
Профит

Вариант "ситуативный и будет работать только на винде":
1. Берёшь C++/CLI
2. Делаешь на нём .Net библиотеку и делаешь нужное количество классов -обёрток над плюсовым кодом.
Профит

В случае с этой библиотекой можно ещё попробовать:
1. Найти альтернативы
2. Переписать на C#
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
freeExec
@freeExec
Участник OpenStreetMap
Никак, вот так просто не добавишь.
Пишешь ручками обёртку по вызову каждой нужной тебе функций из нативного кода. Либо воспользоваться тулзами которые могу создать некую рыбу для дальнейшего допиливания напильником, вроде CppSharp
Ответ написан
Комментировать
nozd
@nozd
C#
Две копейки к ответам: если расположение библиотеки будет динамическое (т.е., не вшиваешь её в проект), то перед обращением к билиотеке её можно подгрузить через NativeLibrary.Load()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы