【发布时间】:2017-01-13 21:39:56
【问题描述】:
我有一个用 C# 开发的 Windows 窗体应用程序来进行网络摄像头捕获。我需要从称为 Magic 的应用程序开发环境中调用此 C# 表单(不要问为什么)。
如果我只需要调用 .exe 就可以了,但由于复杂的原因,我不允许在生产环境中使用 .exe;因此,我需要一个可以加载到应用程序中的 DLL。我不能使用 C# DLL,因为它没有像 C++ 中那样的 .def 文件来公开它的功能(如果你能为我解决这个问题,那么就不需要再进一步了)。因此,我需要找到一种方法来创建 C++ 包装器,这将提供在应用程序和 C# windows 窗体/DLL 之间传递数据的能力。
我在这里读到的大部分内容都建议将其注册为 COM 对象,但我不能这样做,因为这将部署到 100 多台机器上,并且为每个单独的机器注册它不会与我们的系统管理员一起飞行。谁能帮忙提供一个指南或建议我应该开始调查哪条路线?我尝试了多种方法都失败了,我真的在这里寻求帮助和指导。
【问题讨论】:
-
任何类型的消息传递都可以作为 COM 的替代方案;包括命名管道或套接字;尽管最好使用更高级别的东西,例如 ZeroMQ 或其他 *MQ 框架,或者甚至在您的 C# 应用程序中托管某种 SOAP 或 REST 服务端点。