Хобрук: Ваш путь к мастерству в программировании

Пространство имен C++/CLI DLL не найдено в MSVS

Общая картина: я пытаюсь писать код как на C#, так и на C++, чтобы добиться хорошего баланса между производительностью и производительностью. Это не по причинам повторного использования кода; Я просто хочу иметь возможность писать новый код на родном C++, когда мне это удобно, не ввязываясь во все его ужасы.

У меня есть решение с 4 проектами:

  • Графический интерфейс: С# WPF-интерфейс
  • Logic_Cs: C# DLL, высокоуровневая эталонная реализация игровой логики.
  • Logic_CLI: CLI DLL, интерфейс между управляемым и неуправляемым кодом.
  • Logic_Cpp: библиотека C++ с собственной реализацией

В какой-то момент все это работало просто отлично. В моем проекте с графическим интерфейсом я мог переключаться между реализацией C#/C++, просто используя пространство имен из соответствующей библиотеки DLL.

Затем я, видимо, что-то изменил, и теперь я не могу заставить пространство имен в проекте Logic_CLI распознаваться в проекте GUI, хотя пространство имен Logic_Cs по-прежнему работает нормально.

Да, я добавил правильные ссылки, установил зависимости, перестроил И воссоздал всю структуру решения с нуля; ничего не помогает.

Я заметил, что C# DLL строится в папку в собственном каталоге проекта, а CLI строится в каталог решения; но приложение с графическим интерфейсом, похоже, все равно ищет DLL в правильном каталоге, и я не получаю никаких жалоб на DLL; он просто отказывается импортировать из него пространство имен.

Раньше, когда все это работало, я ничего явно не экспортировал из CLI DLL; я не делаю этого и для C# DLL. Это должно «просто работать», нет?

11.01.2011

  • Щелкните ссылку правой кнопкой мыши, выберите Просмотр в обозревателе объектов. 11.01.2011
  • Это в браузере объектов. Но проблема решена. Построчно перестраивая свой проект, я обнаружил, что проблема заключается в двойном определении символа компилятора; спасибо C++ за то, что вернули мне такие релевантные сообщения об ошибках (да, это сарказм; на самом деле часть C++ скомпилирована просто отлично) 14.01.2011
  • Не поделитесь, что это был за символ? Кажется, у меня точно такая же проблема (никаких жалоб от VS, кроме имени типа или пространства имен... не найдено, обозреватель объектов работает). 14.03.2013

Новые материалы

5 проектов на Python, которые нужно создать прямо сейчас!
Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

ВЫ РЕГРЕСС ЭТО?
Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..