在新流程中执行功能(跨平台C+;+;) 所以我试图在C++中找到一个跨平台的方法来在一个新的进程中执行一个函数。我同时使用Boost和wxWidgets,因此涉及到它们的解决方案将非常棒

在新流程中执行功能(跨平台C+;+;) 所以我试图在C++中找到一个跨平台的方法来在一个新的进程中执行一个函数。我同时使用Boost和wxWidgets,因此涉及到它们的解决方案将非常棒,boost,wxwidgets,fork,Boost,Wxwidgets,Fork,在Posix上这是一项非常简单的任务-只需要fork()然后测试我们是孩子还是家长。不幸的是,fork在Windows上不可用。wxWidgets提供了一种在新进程中执行shell命令的简单方法,但没有提供函数(根据我的发现)。Boost(据我所知)没有任何流程操作工具 有人知道怎么做吗?启动第二个线程而不是新的进程如何?我考虑过线程,但决定不使用它们(或者希望避免使用它们)。我正在尝试编写一个简单的插件系统,其中包含从共享对象加载的函数。我想使用单独的进程,这样插件中的崩溃不会影响核心系统。你

在Posix上这是一项非常简单的任务-只需要fork()然后测试我们是孩子还是家长。不幸的是,fork在Windows上不可用。wxWidgets提供了一种在新进程中执行shell命令的简单方法,但没有提供函数(根据我的发现)。Boost(据我所知)没有任何流程操作工具


有人知道怎么做吗?

启动第二个线程而不是新的进程如何?我考虑过线程,但决定不使用它们(或者希望避免使用它们)。我正在尝试编写一个简单的插件系统,其中包含从共享对象加载的函数。我想使用单独的进程,这样插件中的崩溃不会影响核心系统。你可以看看rundll32,把你的功能放到DLLYeah,更糟糕的情况下,我肯定会仔细阅读Windows文档,为每个平台编写单独的代码,但我想我会问,因为这似乎是您应该能够使用这些跨平台库中的一个来执行的。wxExecute“在Unix或Windows中执行另一个程序”。我不确定是否可以将单个函数作为另一个进程来运行。单独的进程不需要自己的地址空间、初始化等吗。?