繁体   English   中英

用于实时摄像机流的 C# 应用程序中的 C++ .exe

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM