У меня есть приложение Windows Form, которое я разработал на C#, чтобы сделать захват веб-камеры. Мне нужно вызвать эту форму C# из среды разработки приложений, известной как Magic (не спрашивайте, почему).Приложение C# Form в C++ DLL
Если все, что мне нужно было сделать, это вызвать .exe. Все будет в порядке, но по сложной причине мне не разрешено использовать .exe в рабочей среде; поэтому мне нужно иметь DLL, которая может быть загружена в приложение. Я не могу использовать C# DLL, потому что у него нет файла .def, как на C++, который предоставляет свои функции (если вы можете решить это для меня, тогда вам не нужно идти дальше). Поэтому мне нужно найти способ создания C++-обертки, который обеспечит возможность передачи данных между приложением и формой Windows C#/DLL.
Большинство вещей, которые я читал здесь, предлагает зарегистрировать его как объект COM, но я не могу этого сделать, потому что он будет развернут на 100 машинах и зарегистрирован для каждого из них, который не будет летать с нашими системными администраторами. Может ли кто-нибудь помочь в предоставлении руководства или предложить, какой маршрут я должен начать расследовать? Я пробовал несколько методов, которые все провалились, и я действительно ищу помощь и рекомендации здесь.
http://tigerang.blogspot.in/2008/09/reverse-pinvoke.html –
Любой вид обмена сообщениями может работать как альтернатива COM; включая именованные каналы или сокеты; хотя было бы лучше использовать что-то более высокоуровневое, такое как ZeroMQ или другое * MQ framework, или даже иметь какую-то конечную точку службы SOAP или REST в вашем приложении C#. –