Как скомпилировать приложение C# с C++ статическая библиотека?

Возврат обратного итератора к обратному концу Возвращает обратный итератор, указывающий на теоретический элемент, предшествующий первому элементу в векторе (который считается его обратным концом).

Диапазон между vector :: rbegin и vector :: rend содержит все элементы вектора (в обратном порядке).

теоретический элемент, предшествующий первому -> На него нельзя ссылаться. Это не указывает на элемент.

Я предполагаю, что вы хотите сделать: v.back()->push_back({});

Это, учитывая, что v не является пустым. Сначала вы должны сделать v.push_back({}), если он пуст в качестве примера.


Что касается IDE, это должно быть проблемой конфигурации. Я в основном работаю над Eclipse, там эта проблема обычно решается:

  • Установка параметров компилятора в соответствии с настройками вашего cmake (например, проекты C ++ по умолчанию не поставляются с c ++ 11 включен, поэтому вы должны убедиться, что он имеет -std = c ++ 11 в настройках компилятора IDE).

  • Повторное сканирование для всех включает.

Обычно вы можете попытаться проверить, не распознано ли что-то (например, недоудача по ключевому слову vector). И когда вы нажмете Ctrl + клик по вектору, вы сможете увидеть, какой заголовок использует IDE и какой код он использует (могут быть некоторые ifdef, а некоторые могут быть не активированы, например, например, __cppversion> = 201103L или что-то подобное означает IDE считает, что у вас нет компилятора C ++ 11).

12
задан Ivan Prodanov 8 April 2009 в 11:22
поделиться

4 ответа

Нет, вы не можете получить доступ к статическим библиотекам напрямую из C #. У вас есть для использования DLL.

15
ответ дан 2 December 2019 в 04:34
поделиться

Способ «использовать» статическую библиотеку в C # состоит в том, чтобы сначала создать упаковку Managed C ++, которая обеспечит фасад для остального управляемого мира. Как все остальные уже прокомментировали, C # поддерживает только библиотеки DLL для P / Invoke.

15
ответ дан 2 December 2019 в 04:34
поделиться

Нет способа сделать это.

Только вызывать функции DLL во время выполнения или создавать COM-объект из вашей библиотеки

1
ответ дан 2 December 2019 в 04:34
поделиться

«Статическая библиотека» означает, что библиотека будет объединена с вашим окончательным приложением. Эта концепция не существует в .net. .net поддерживает только библиотеки DLL.

2
ответ дан 2 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

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