如何获取C+的多个实例+;nodejs中的插件? 我想在NoDEJS中的多个实例中使用C++库。我使用绑定NPM模块来包装C++代码。但最终,C++库变成了共享对象。请帮我做这个
我使用了require('bindings')('library_name')和new关键字 在需要下一个实例之前,我已清除了require cache 我使用了npm模块来清除缓存如何获取C+的多个实例+;nodejs中的插件? 我想在NoDEJS中的多个实例中使用C++库。我使用绑定NPM模块来包装C++代码。但最终,C++库变成了共享对象。请帮我做这个,c++,node.js,binding,C++,Node.js,Binding,我使用了require('bindings')('library_name')和new关键字 在需要下一个实例之前,我已清除了require cache 我使用了npm模块来清除缓存 for (var i = 0; i < config.data.length; i++) { libraryObj[data[i]] = new require('library-name'); // c++ library wrapper } for(var i=0;i我建议你重新设计C+
for (var i = 0; i < config.data.length; i++) {
libraryObj[data[i]] = new require('library-name'); // c++ library wrapper
}
for(var i=0;i
<>无论我做什么,C++库总是共享,这不是预期的行为。 < P>我建议你重新设计C++ ADDO,这样你就不能得到这个要求。 不能从同一进程再次加载同一模块,如果加载,它将返回相同的句柄(引用) 您可以从其他进程加载 在窗户上 系统在所有加载的进程上维护每个进程的引用计数 模块。调用LoadLibrary会增加引用计数。使命感 FreeLibrary或FreeLibraryAndExitThread函数递减 参考计数。系统在引用计数时卸载模块 达到零或进程终止时(无论 参考计数) 在Linux上 如果使用dlopen()再次加载相同的库,则相同的文件 返回句柄。dl库维护了的引用计数 库句柄,因此动态库在 dlclose()的调用次数与dlopen()的调用次数相同 成功了。如果存在_init()例程,则只调用一次。 但随后的RTLD_调用现在可能会强制对 库之前已加载RTLD_
这听起来像是XY问题。您是否试图加载同一个库的多个实例,因为该库具有每个实例都需要保留的全局状态?您可能需要重新构建库。稍后,我发现只有最新的节点工作程序支持此功能。我重新设计了当前的图书馆以满足我的需要。