在父进程内启动子进程进程

时间:2016-02-10 17:10:25

标签: c++ windows winapi

是否可以在同一地址空间内启动子进程? 我想访问任何导出的函数localy。

例如:

  1. 启动(启动器)进程(父进程)。
  2. (启动器)调用CreateProcess(...)(子进程)
  3. 但是子进程会有一个新的地址空间,我是否正确?在父进程地址空间内有没有办法创建CreateProcess?我知道可以从外部访问它,但希望以优雅的方式进行。

2 个答案:

答案 0 :(得分:2)

  

是否可以在同一地址空间内启动子进程?我想访问任何导出的函数localy。

不,这是不可能的。操作系统为每个进程创建一个新的地址空间,受到保护以便从其他进程访问。

改为使用线程。

答案 1 :(得分:1)

  

我想在本地访问任何导出的函数。

您不需要子进程与父进程共享相同的内存空间。使用父进程的可执行文件调用LoadLibrary将为子进程提供对父进程中导出的入口点的访问权限。请注意,这将提供共享内存的机制(除非您实际使用shared memory)。