[英]C++ .exe in C# Application for live camera stream
我想在我的 C# WPF 应用程序 GUI 中打开一个多个 C++ .exe 应用程序,以显示来自多个 IP 摄像机的多个实时视频流。
我试过研究 Interops,但找不到真正适合我的例子。
我的目标是将 .exe 加载到没有窗口边框、关闭按钮等的 C# WPF 应用程序 GUI 中,并将其固定在一个地方。
从技术上讲,Windows GUI 可以跨进程正常工作。
更改 C++ 应用程序,使其接收像ownerHwnd=0FE321
这样的命令行参数,并将新视频窗口设置为传入该参数的窗口句柄的子窗口。
更改 WPF 应用程序,使其为每个摄像头创建HwndHost一个可能是最简单的一个。 或者您可以为每个应用使用一个,并在该窗口上放置多个视频流。 启动流时将 HwndHost 的窗口句柄传递给 C++ 应用程序。 编写代码来处理调整大小。 不要忘记收听Exited
事件并以某种方式做出反应。
棘手的部分是这些进程之间的 IPC。 你不能调用函数,还有线程问题,比如输入焦点(如果你的视频渲染器不需要用户输入,应该没问题)。 这种情况下一个很好的 IPC 策略是发送/发布/响应自定义 Windows 消息。 使用单个导出函数将 C++ 项目更改为 DLL 有助于实现这一点,但以牺牲稳定性为代价。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.