Как отправить номер из формы на языке C# в консольную программу на языке C++
Мне нужно запустить неуправляемое приложение C++, это приложение должно быть подключено к библиотеке в C# (dll, которая при загрузке должна показывать форму с кнопкой) и ждать завершения события закрытия формы.
Пока форма загружается, в момент нажатия кнопки должно быть выполнено событие click, которое должно выполнить функцию, которая может отправить номер возврата в консольное приложение на языке C++, и это приложение покажет результирующее число в выводе консоли.
Что мне нужно, так это решить пункт 5. как показано ниже, я читаю много документов, но почти все они относятся к взаимодействию между Библиотекой DLL C++ и приложением C#, а не наоборот (возврат целочисленного значения из библиотеки dll C# в консольное приложение C++).
Выполнение должно быть динамическим, то есть при отображении формы должна быть установлена связь между функцией библиотеки C# и функцией родительского консольного приложения C++.
Все примеры, которые мне удалось найти, делают почти то же самое, загружают библиотеки, устанавливают связь и из консольного приложения C++ вызывают функцию библиотеки C# и показывают результирующее возвращаемое значение, и приложение заканчивается, но ни один пример не показывает, как загрузить библиотеку C#, показать форму, нажать кнопку и отправить целое число в результате в родительское консольное приложение C++ и показать результат в выводе консоли.
Если у вас есть какие-либо идеи, как реализовать обратный вызов, я был бы очень благодарен.
Что я уже пробовал:
То, что было достигнуто, - это:
1. Загрузка консольного приложения C++ (неуправляемого), достигнутая
2. Загрузите библиотеку C# из консольного приложения C++, достигнув
3. Импорт и общаться с некоторыми функции, экспортируемые из библиотеки C#, достигнутый
4. При загрузке библиотеки C#, из этой библиотеки отображается форма с кнопки, достигнутый
5. в то время как форма отображается, нажмите кнопку и выполните функцию в C#, которая возвращает целое число в консольное приложение C++ и печатает результат в выводе консоли из консольного приложения C++ в ожидании
Richard MacCutchan
Это звучит как большая работа, чтобы сделать что-то, что, скорее всего, может быть достигнуто более легко. Почему бы не создать консольное приложение на языке C#, которое могло бы легче взаимодействовать с библиотекой? Или приложение Windows Form, которое запускает консольное приложение с соответствующим номером?
fisadmaster
@Richard MacCutchan, это требование установлено таким образом, потому что оно должно выполнять различные операции между неуправляемым приложением C++ и библиотекой на C#, и необходимо проверить совместимость между языками для будущих реализаций
Richard MacCutchan
Хорошо, тогда вам нужно установить обработчик событий в библиотеке, который может вызвать консольное приложение. Что, скорее всего, потребует некоторого кода C++/CLI между ними.