如何在Windows(C++)中创建进程来运行另一段代码?

如何在Windows(C++)中创建进程来运行另一段代码?,c++,windows,process,multiprocess,C++,Windows,Process,Multiprocess,我试图在一个简单的cpp程序中创建一个进程,并希望在此进程中从不同的源文件运行另一段代码。我找到了用于Windows的CreateProcess API,它允许我们创建进程,但它似乎只需要执行exe文件。是否有一种方法可以在windows中创建一个进程,并提供一个类似于线程的函数等供其执行 PS:我不是在寻找基于线程的解决方案,因为我想用进程和共享内存测试一些东西 是否有一种方法可以在windows中创建一个进程,并提供一个类似于线程的函数等供其执行 不可以。但是你可以让你的程序运行它自己的另一

我试图在一个简单的cpp程序中创建一个进程,并希望在此进程中从不同的源文件运行另一段代码。我找到了用于Windows的CreateProcess API,它允许我们创建进程,但它似乎只需要执行exe文件。是否有一种方法可以在windows中创建一个进程,并提供一个类似于线程的函数等供其执行

PS:我不是在寻找基于线程的解决方案,因为我想用进程和共享内存测试一些东西

是否有一种方法可以在windows中创建一个进程,并提供一个类似于线程的函数等供其执行

不可以。但是你可以让你的程序运行它自己的另一个副本,传递命令行参数告诉它需要做什么。可以使用GetModuleFileName获取当前进程的EXE文件的完整路径。然后,在main/WinMain中,如果存在任何命令行参数,请运行相应的函数,然后退出,否则请正常运行主逻辑

是否有一种方法可以在windows中创建一个进程,并提供一个类似于线程的函数等供其执行


不可以。但是你可以让你的程序运行它自己的另一个副本,传递命令行参数告诉它需要做什么。可以使用GetModuleFileName获取当前进程的EXE文件的完整路径。然后,在main/WinMain中,如果存在任何命令行参数,请运行相应的函数,然后退出,否则请正常运行主逻辑

谢谢你的帮忙。虽然这解决了我目前的目的,但我很好奇这通常是如何实现的。例如,Chrome在主进程之后再启动几个进程,并且安装目录中不包含要在这些进程中运行的代码的任何exe文件。我想知道是否有办法复制相同的行为。@SuryaPrakash如果你看一个流程管理器,你可能会发现chrome会启动同一个可执行文件的多个副本,但根据需要的功能使用不同的命令行参数。@SuryaPrakash使用命令行参数是最简单的方法向新进程发送命令,但这肯定不是唯一的方法。有许多IPC进程间通信机制可用。但是,是的,它们通常源于对每个进程使用相同的EXE文件来保持代码管理的简单性。虽然这解决了我目前的目的,但我很好奇这通常是如何实现的。例如,Chrome在主进程之后再启动几个进程,并且安装目录中不包含要在这些进程中运行的代码的任何exe文件。我想知道是否有办法复制相同的行为。@SuryaPrakash如果你看一个流程管理器,你可能会发现chrome会启动同一个可执行文件的多个副本,但根据需要的功能使用不同的命令行参数。@SuryaPrakash使用命令行参数是最简单的方法向新进程发送命令,但这肯定不是唯一的方法。有许多IPC进程间通信机制可用。但是是的,它们通常源于对每个进程使用相同的EXE文件以保持代码管理的简单