Уточнение. Существует C++ exe и C# exe. C# exe является оболочкой для C# dll. Мне нужна DLL для вызова функции logger в коде C++ (так что создается только один файл журнала). В настоящее время существует мост C++/CLI, который позволяет C++ exe вызывать методы в C# dll.Методы вызова в приложении C++ из dll C#
Извините, если это плохой вопрос. Возможно, это случай, когда я просто не знаю, что искать/результаты для того, что я ищу, не очень полезно.
У меня есть приложение, написанное на C++. Он называет инструмент, написанный на C#. Похоже, что исполняемый файл для инструмента - это просто оболочка для C# dll. Целью инструментов является анализ и отображение данных. Основное приложение вызывает его, например, для открытия нового файла. Инструменту никогда не приходилось что-либо называть кодом C++, поэтому это всегда было одним из способов. Похоже, что он реализован через мост C++/CLI. Мост вызывает функции в инструменте api.
Теперь требуется, чтобы инструмент вызывал некоторые методы в приложении C++. Я понятия не имею, как это реализовать. Мой опыт работы с C#/C++/CLI находится где-то между бедными и несуществующими. Я начал с попытки клонирования моста C++/CLI и «обратного» его, но поскольку код C# на самом деле, библиотека, вызывающая его с моста, довольно проста. Однако я не уверен (если это возможно), как вызвать приложение C++ с моста.
До сих пор единственное работоспособное решение, которое я могу придумать, это получить вывод кода C# в файл (или, надеюсь, разделяемую память), тогда код C++ проверяет его периодически. Это не близко к идеалу.
Любые советы будут оценены.
Благодаря
Это явно дублирующий вопрос. Вы пробовали это: http://bit.ly/1ah8rhc? –
Я пытаюсь сделать обратное. Мне нужно, чтобы C# dll вызывал метод из C++. Все, что я нашел, похоже, связано с библиотекой C++. Возможно, я тускнею, но я думаю немного меньше, чем вы предполагали. – Hector
Забавно, я вижу, что эти вопросы проходят каждый месяц или около того, но их трудно найти. В любом случае, ответом всегда является saem: используйте P/Invoke (жесткий путь) или пишите слой CLI между ними (путь, насколько я знаю) – stijn