У меня есть плагин, написанный для программы на C++ (как .dll). Интерфейс этого .dll полагается на что-то вроде следующего:выставляя API на C++ dll из C#
class Platform
{
virtual bool callSomeFunc() = 0;
//etc.
}
.dll обеспечивает платформу с объектом через extern "C"
функции. Довольно стандартный. DLL может взаимодействовать с платформой через объект класса, реализующего вышеуказанный интерфейс. Довольно стандартный вариант.
Теперь нам нужно написать платформу в C#. Идеально не переписывать плагин, потому что у нас есть большая часть нашего кода в плагине. Есть ли способ сделать это? (Что-то вроде передачи объекта C# для объекта Platform
.dll ожидает?)
Это будет означать, что я не смогу использовать существующую .dll, не изменяя ее правильно? Даже если я использую COM в C#. – nakiya
Ну, вы могли бы поддерживать два механизма бок о бок. Суть в том, что использование классов C++ ограничивает использование только кода C++. Действительно, только с использованием кода, построенного с тем же компилятором. Код на C++ не является дружеским. COM разработан исключительно для двоичного взаимодействия. –