C++ 在进程中隔离并多次实例化C库

C++ 在进程中隔离并多次实例化C库,c++,c,ipc,C++,C,Ipc,我们有一个C库(.lib-windows和.a-linux),它只允许创建一个单例,而且一旦实例化,它也不能正常关闭(内存泄漏,线程保持活动状态) 除了重写它和查找bug之外,是否有一种简单的方法可以在进程中隔离这种行为不端的代码,这样就可以删除单例限制,并且可以对不干净的tidyup进行沙盒处理 我主要对任何过程中的选择感兴趣,如果确实有。一个单独的过程显然可以解决这个问题,但是如果没有影响很小的解决方案,那么就需要一个体系结构开销来实现对库的远程控制(它有一个很宽的API,所以维护大量的胶水

我们有一个C库(.lib-windows和.a-linux),它只允许创建一个单例,而且一旦实例化,它也不能正常关闭(内存泄漏,线程保持活动状态)

除了重写它和查找bug之外,是否有一种简单的方法可以在进程中隔离这种行为不端的代码,这样就可以删除单例限制,并且可以对不干净的tidyup进行沙盒处理


我主要对任何过程中的选择感兴趣,如果确实有。一个单独的过程显然可以解决这个问题,但是如果没有影响很小的解决方案,那么就需要一个体系结构开销来实现对库的远程控制(它有一个很宽的API,所以维护大量的胶水不是特别有吸引力)。

对不起,没有简单的方法可以做到这一点。对行为不好的库进行沙箱处理通常是使用单独的进程来完成的,您已经建议自己这样做了。像协议缓冲区这样的IPC工具可能有助于定义和实现IPC协议。

简洁-否。如果库所有者不合作,从长远来看,重写可能是最容易的。