У меня работает этот учебник: https://www.red -gate.com / simple-talk / dotnet / net-development / creation-ccli-wrapper /
В этом учебнике используется 3 VisualСтудийные проекты в одном решении.Проект "Core" - это нативная сторона C ++.Проект Wrapper - это C ++ / CLI "мост".И проект «Песочница» - это сторона C #.
Сейчас я пытаюсь изменить это для работы с функцией C ++, которую я добавил в Core, но мои новые методы и свойства Wrapper не отображаются в C #,Моя конечная цель заключается в том, чтобы приложение C # отправляло текст в программу C ++, затем программа C ++ запрашивает базу данных и возвращает первые 20 записей, соответствующих тексту.Сейчас я просто хочу отправить классу C ++ строку и целое число, и чтобы он возвращал вектор строки, повторяемый целое число раз.
Я ожидал, что смогу создать новыйсвойство в оболочке, и он будет отображаться в C #.У меня есть свойство, указывающее на функцию в Core, и единственное существенное различие между рабочими свойствами / функциями и ошибочными - это используемые типы.В заголовочном файле проекта Wrapper я добавил свою функцию следующим образом:
void TypeAhead( std::string words, int count );
В файле Wrapper .cpp я добавил следующее:
void Entity::TypeAhead( std::string words, int count )
{
Console::WriteLine( "The Wrapper is trying to call TypeAhead()!" );
m_Instance->TypeAhead( words, count );
}
У меня есть соответствующие функции в Coreпроект.В Program.cs объект класса Entity может использовать свойства и функции из учебника, но не те, которые я добавил.Что мне нужно изменить, чтобы свойства и функции из проекта Wrapper можно было использовать в проекте Sandbox?
Мой репозиторий можно найти здесь: https://github.com/AdamJHowell/CLIExample