【问题标题】:Calling function from another process on Windows从 Windows 上的另一个进程调用函数
【发布时间】:2011-08-23 02:17:16
【问题描述】:

我有两个 Windows 应用程序 (EXE)。我想这样做:

答:

void foo(int a)
{
    MessageBox(a);
}

乙:

p = CreateProcess("A.exe");
CallFunction(p, "foo", 15); 

这个“CallFunction”是怎么做到的?

【问题讨论】:

  • 那么你希望进程 B 能够调用进程 A 中的函数吗?你熟悉CreateRemoteThread吗?见msdn.microsoft.com/en-us/library/ms682437(VS.85).aspx
  • @Gabe,如果您同时控制两个进程,则没有理由使用 CreateRemoteThread。
  • @bdonlan:是的,只有当 OP 无法以任何其他方式侦听 RPC 时才需要这样做。
  • 您可能想在此处提供有关您的更高级别目标的更多信息。正如 bdonlan 在答案中指出的那样,有几种方法可以在 Windows 上做这样的事情;但哪个是“最好的”可能取决于您首先要做什么。

标签: windows winapi process


【解决方案1】:

您将需要使用 IPC(进程间通信)方法。对此有多种选择,包括DCOMnamed pipesWindows messages

【讨论】:

  • 谢谢,使用 Windows 消息是一个可靠的解决方案。
猜你喜欢
  • 2013-03-23
  • 1970-01-01
  • 2019-07-14
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
相关资源
最近更新 更多