【问题标题】:Communication between .dll and .exe.dll 和 .exe 之间的通信
【发布时间】:2013-05-29 10:22:57
【问题描述】:

我的项目是这样组织的:

  1. Dll 调用 .exe
  2. .exe 开始从摄像头录制视频流。
  3. 调用另一个 Dll 并向 .exe 发送信号以停止录制并保存视频。

第一步很容易实现: 我可以简单地通过 ShellExecute 或 CreateProcess 从 dll 中调用 .exe。

第二步也很简单: 在互联网上,C++ 视频录制的可能性很大。

第三步就是问题了,怎么让.exe停止录制呢? .exe 可以等待特定的信号吗?

谢谢。

【问题讨论】:

标签: c++ video dll exe communication


【解决方案1】:

Exe 可以创建互斥锁(或调用 exe 的 dll ......您应该更清楚何时何地创建它,这是您的项目)。然后,步骤 3 中的 dll 可以打开相同的互斥体并将其设置为信号状态。 Exe 将等待该信号并停止录制。

【讨论】:

  • 或者我可以设置 .exe 等待 WM_CLOSE 信号,这是个好主意吗?
  • 我不会为此使用 Windows 消息。即使您这样做,也许是自定义消息而不是 WM_CLOSE?如果该录制应用程序有一个窗口,您必须在关闭应用程序之前停止录制...
  • 不,它没有窗口。我应该使用什么样的信号?
  • 正如我在回答中所说,我会使用互斥锁。在 MSDN 中搜索 CreateMutex/OpenMutex/ReleaseMutex/WaitForSingleObject 等... 创建一个命名的互斥锁并使用它。如果您为 SECURITY_ATTRIBUTES 传递 NULL,则互斥锁将获得默认的安全描述符。如果这对您来说是个问题,请创建您自己的安全描述符。
猜你喜欢
  • 2011-03-13
  • 1970-01-01
  • 2013-03-08
  • 2011-11-12
  • 2013-06-18
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
相关资源
最近更新 更多